我按照以下网址的指南进行操作:http: //developers.itextpdf.com/content/itext-7-jump-start-tutorial/chapter-6-reusing-existing-pdf-documents
按照该指南,我遇到了一个问题,即在使用 copyAsFormXObject(我提交了支持票证)时,PDF 中的某些内容没有被复制到目标 PDF 中。同时我发现的另一种方法是,我可以使用 PdfDocument 的 copyPagesTo 方法,只需打开在目标 PDF 上使用 getPage 复制的页面。由此,我可以从现有页面创建一个 PdfCanvas 并对对象进行转换(例如缩放)。
这似乎与上述指南中的代码完全一样,除了我发现的未复制内容的 PDF,现在似乎复制了内容。
与指南建议的(copyAsFormXObject)相比,使用 copyPagesTo 方法复制内容有什么缺点吗?性能、内存或无关的不可见内容等?
出现此问题的代码:
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
PdfDocument origPdf = new PdfDocument(new PdfReader(src));
PdfPage origPage = origPdf.getPage(1);
PdfPage page = pdf.addNewPage();
PdfCanvas canvas = new PdfCanvas(page);
PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf);
canvas.addXObject(pageCopy, 0, 0);
pdf.close();
origPdf.close();
没有的代码:
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
PdfDocument origPdf = new PdfDocument(new PdfReader(src));
origPdf.copyPagesTo(1,2,pdf);
pdf.close();
origPdf.close();