Free Support Forum - aspose.com

Aspose转换奔溃

接入aspose付费版,转换时出现奔溃,内存爆了。日志如下:
2020-11-16 20:47:33.911 32639-32639/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.bips, PID: 32639
java.lang.RuntimeException: excessive dalvik heap usage, total dalvik heap usage 254 MB
at com.a.b.AppThreadCmd$2.run(AppThreadCmd.java:84)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:239)
at android.app.ActivityThread.main(ActivityThread.java:8067)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015)

使用代码如下:
File file = new File(outPath);
FileOutputStream os = new FileOutputStream(file);
com.aspose.words.Document doc = new com.aspose.words.Document(inPath);
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
addFontForAsposeCells();
pdfSaveOptions.setOnePagePerSheet(true);
doc.save(os, com.aspose.words.SaveFormat.PDF);
os.close();
环境为jdk1.8

@vivo11113766,

请ZIP并上传您的源文件,您在这里遇到此问题以进行测试。 然后,我们将对此进行调查,并为您提供更多信息。

新建Microsoft Excel 工作表(2).zip (830.4 KB)

@vivo11113766,
您已经共享了使用Aspose.Words的示例代码,而您已经共享了一个Excel文件进行测试。 您能否验证示例代码和共享模板文件以供我们参考。 另外,如果可能,请共享一个完整的可运行项目,该项目将得到简化,并包含重现此问题的最少代码。

核心代码上面已经贴,项目代码无法给出。这个excel复现很容易,请用demo复现一下,谢谢

@vivo11113766,

我们检查了您的Excel文件,发现在进行工作表的打印预览时它显示超过2000页。我们还认为,这可能是罪魁祸首:

pdfSaveOptions.setOnePagePerSheet(true);

您如何为如此长的数千页页面生成一页,这是不可能的。因此,此行肯定会占用更多内存,并且在尝试呈现一页时将花费大量时间(这是不可能的),因此最终会产生异常/错误。

Plesae注释或删除此行,如果仍然发现任何问题,请使用以下几行尝试一下:
例如
样例代码:

com.aspose.cells.Workbook workbook = new com.aspose.cells.Workbook (inPath);
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
addFontForAsposeCells();
workbook.save(os, com.aspose.cells.SaveFormat.PDF);