PDFBox - 仅复制页面资源,而不是复制文档的所有资源

时间:2013-09-19 07:26:23

标签: java pdf pdfbox

使用pdfbox,如何仅复制页面资源而不是复制单个页面的文档的所有资源?这是我用来提取页面并将其添加到新文档的代码,但这会创建一个大文件,我认为即使添加单个页面也会复制文档的所有资源。有没有压缩内容的方法?

pageToAdd = (PDPage) billDoc.getDocumentCatalog().getAllPages().get(j-1);
outputDoc.addPage(pageToAdd);

1 个答案:

答案 0 :(得分:2)

添加或拆分页面时,您只能复制所需的资源。这完全取决于您的需求或您想要完全添加/删除的内容。您还可以检查mergeInto()以合并COS字典。例如,仅复制字体:

PDResources res = pageToAdd.getResources();
PDResources newres = new PDResources();

newres.setFonts(res.getFonts());
pageToAdd.setResources(newres);
outputDoc.addPage(pageToAdd);