【发布时间】:2013-09-19 07:26:22
【问题描述】:
使用pdfbox,如何只复制页面资源而不是复制单个页面的文档的所有资源?这是我用来提取页面并将其添加到新文档的代码,但这会创建一个大文件,我认为即使我添加一个页面,它也会复制文档的所有资源。有什么方法可以压缩内容吗?
pageToAdd = (PDPage) billDoc.getDocumentCatalog().getAllPages().get(j-1);
outputDoc.addPage(pageToAdd);
【问题讨论】:
-
根据 PDF 创建软件的不同,其 Resources 字典中的每个页面可能会引用所有文档资源,而不仅仅是当前页面所需的资源。对于此类文档,您将看到您所描述的行为。
-
另外,页面的“大小”不是文档大小除以页数。页面之间存在共享资源,因此单个页面的大小可能比您预期的要大。
-
我们使用 FOP 生成 PDF,并且没有任何图像会大幅增加大小 - 只是纯文本。问题是,我有 2 个内容相同但从不同来源创建的 pdf。我用 FOP 创建的那个是我收到的那个的两倍(不确定它来自哪里)。我也没有嵌入任何字体。如果 FOP 在单个页面上引用上述所有文档资源,那么我会说 FOP 需要优化。
-
使用 PDFBox,有没有一种方法可以拆分 PDF 中的页面,仅复制该页面所需的资源?