0

我编写了一个处理 PDF 的 Java 程序,最后它运行以下代码来优化创建的 PDF 的文件大小。

log.debug("Optimizing the PDF");
OptimizationOptions opt = new Document.OptimizationOptions();
opt.setRemoveUnusedObjects(true);
opt.setRemoveUnusedStreams(true);
opt.setLinkDuplcateStreams(true);
opt.setCompressImages(true);
opt.setImageQuality (90);
pdfDocument.optimizeResources(opt);

它大部分时间都可以工作,但最近它抛出了以下错误 java.lang.IllegalArgumentException: Map size (0) must be >= 1. 我无法复制该错误,所以我不确定哪一行代码是抛出错误,但我的猜测是

pdfDocument.optimizeResources(opt);

我的问题是导致此错误的一些可能原因是什么,我无法找到有关此的任何好的信息。我也将不胜感激任何链接以及给出的任何建议。

4

2 回答 2

0

好吧,经过更多的测试,它肯定与 PDF 的大小有关。该代码适用于任何正常大小的 PDF,它是那些开始到达 1000 个崩溃页面的代码。我不知道这是超时问题还是 Aspose 如何处理它的其他问题,但我会将其升级到 Aspose。

于 2014-11-10T15:29:52.167 回答
0

很可能,此错误是由某些特定文档引起的。最好的解决办法是

  1. 首先找出导致此问题的文档。
  2. 然后在 Aspose 论坛中使用导致此问题的测试文件报告问题。
于 2014-11-07T18:11:15.777 回答