LilaS 发表于 2024-9-6 16:19:29

【17.1.2】 spread.savePDF时出现Maximum call stack size exceeded 怎么解决?

本帖最后由 LilaS 于 2024-9-6 16:24 编辑

某个功能按钮a 中写了两个spread.savePDF




点击a第一次 正常执行 再点第二次会报错

重新加载页面 就可以重新重复上述过程

请问怎么解决?

Wilson.Zhang 发表于 2024-9-6 16:19:30

您好!我们在17.1.2和最新的17.1.5版本在线表格编辑器测试,导入您提供的.sjs文件,在第二页(即名为“校准证书”)发现有叠加图片,分别做了以下测试:

1. 导入原始文件后即将其导出为PDF,可以正常导出,未见调用栈溢出的异常信息。
2. 导入原始文件后,删除叠加图片,只保留其中最底层一张即可,可以正常导出,未见调用栈溢出的异常信息。
3. 导入原始文件后,将叠加图片的数量增加至20个,可以正常导出,未见调用栈溢出的异常信息。

如下动图所示:


从您问题图示中的代码片段了解到您分别对索引为0和1的Worksheet导出为PDF文件,想了解您设计这样的导出策略的原因是什么呢,和怎样的需求场景相关呢?
setTimeout函数本就是异步执行函数,综合参考您提供的信息中说到是“照片转码的问题”,不排除存在这样的可能性。如果需要分别导出同一个Workbook中的每张Worksheet为PDF,可以考虑将Workbook整体导出,或者串联式导出,即成功导出一张Worksheet后再导出另一张Worksheet。

如果我们的理解存在偏差,需要您提供更多信息。

Wilson.Zhang 发表于 2024-9-6 17:17:06

您好!从您图示中的代码片段理解,应该是两个setTimeout函数异步执行时造成内存溢出了,您的需求场景中的文件size如何呢?

LilaS 发表于 2024-9-6 17:47:00

本帖最后由 LilaS 于 2024-9-6 17:55 编辑

Wilson.Zhang 发表于 2024-9-6 17:17
您好!从您图示中的代码片段理解,应该是两个setTimeout函数异步执行时造成内存溢出了,您的需求场景中的文 ...
应该不是 我删掉一个savePDF方法也不行 我现在定位到问题了 您看我发的sjs 第二页有大概几处照片 重叠了一下 大概十几张 照片转码的问题吧 然后具体报错:

我删掉几张照片 savePDF就正常了麻烦您照着排查一下 多放点照片试试

Wilson.Zhang 发表于 2024-9-6 18:05:09

LilaS 发表于 2024-9-6 17:47
应该不是 我删掉一个savePDF方法也不行 我现在定位到问题了 您看我发的sjs 第二页有大概几处照片 重叠了 ...

我们来分析下,请您等候。
{:5_110:}

LilaS 发表于 2024-9-9 15:26:21

Wilson.Zhang 发表于 2024-9-6 16:19
您好!我们在17.1.2和最新的17.1.5版本在线表格编辑器测试,导入您提供的.sjs文件,在第二页(即名为“校准 ...

多谢 解决了

Wilson.Zhang 发表于 2024-9-9 15:33:21

LilaS 发表于 2024-9-9 15:26
多谢 解决了

:hjyzw:
不客气,解决了就好!如有问题,欢迎继续发帖沟通。
{:5_110:}
页: [1]
查看完整版本: 【17.1.2】 spread.savePDF时出现Maximum call stack size exceeded 怎么解决?