ppt转成pdf用时过长,50Mppt需要用时两小时以上,代码示例:
public Boolean ppt2Pdf(String srcPath, OutputStream outputStream) {
try {
AsposeLicenseUtil.setSlidesLicense();
Presentation presentation = new Presentation(srcPath);
presentation.save(outputStream, com.aspose.slides.SaveFormat.Pdf);
return true;
} catch (Exception e) {
log.error(e.getMessage(), e);
return false;
}
}
@xiefazhi
能否请您分享需要2个多小时渲染的源PPT文件,以便我们进行调查以进一步帮助您。
50M大小.zip (4.4 MB)
已经将源ppt压缩成zip格式,并上传,麻烦帮忙排查下
@xiefazhi
这似乎是一个问题,已创建 ID SLIDESJAVA-38645 的票证以进一步调查和解决该问题。 此线程已与问题相关联,以便在问题解决后您可能会收到通知。
请问下这个问题大概啥时候可以解决,我们项目比较着急。另外我们引用的aspose版本为
com.aspose
aspose-slides
19.2
@xiefazhi
它刚刚登录到我们的问题跟踪系统,请您耐心等待。 一旦问题被安排进行调查,我们将与您分享反馈,并将分享任何 ETA。
The issues you have found earlier (filed as SLIDESJAVA-38645) have been fixed in this update.
不更新版本如何解决该问题?有没有什么更改参数就能解决的办法或者其他的做法达到相同的目的?
@sun199204,
不幸的是,我没有看到此案的解决方法。 您能否分享您的 PowerPoint 演示文稿文件,Aspose.Slides 显示了类似的行为? 我们将尽最大努力解决问题。
这个问题和哪个演示文稿没关系,只要是按照题主的方式把ppt转换成pdf,转换时间就很长,程序卡住不动,文件越大卡顿时间越长。或者有什么异步的转换方案?
@sun199204,
将 PowerPoint 演示文稿转换为 PDF 文档所需的时间可能取决于内容。 因此,建议检查您的情况。 在多个线程中使用单个 PowerPoint 演示文稿对象进行并行处理是不安全的。
Multithreading in Aspose.Slides
安不安全没有关系 关键是
MemoryStream st = new MemoryStream();//需要做清理
presentation.Save(st, Aspose.Slides.Export.SaveFormat.Pdf);
这两行代码时间执行很长,而且程序卡住不动了 ,影响特别恶劣。和ppt没关系 我这里任意一个ppt都会导致程序卡住
@sun199204,
请尝试使用以下内容:
- 设置加载大型演示文稿的内存限制。
文章: Open Large Presentation
API参考:IBlobManagementOptions Interface
- 为PDF选项设置警告回调并检查警告。
API参考: PdfOptions Class | IWarningCallback Interface
如果问题仍然存在,请分享以下信息:
- 执行代码的操作系统版本
- 应用程序中的 JDK 版本
- JVM的最大内存量
- 你使用的 Aspose.Slides 版本