我编写了一个处理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)必须是> = 1.我无法复制错误所以我不确定哪个代码行抛出错误,但我的猜测是
pdfDocument.optimizeResources(opt);
我的问题是导致此错误的一些可能原因我无法找到有关此问题的任何有用信息。我也很感激任何链接以及给出的任何建议。
答案 0 :(得分:0)
最有可能的是,此错误是由某些特定文档引起的。
是最好的解决方案答案 1 :(得分:0)
经过大量的测试后,它肯定与PDF的大小有关。该代码适用于任何正常大小的PDF,它是那些开始到达崩溃的1000页面的代码。我不知道这是一个超时问题还是Aspose处理它的其他问题,但我会将其升级为Aspose。