我有2个PdfDocument
,并想将一个pdf的所有页面复制到另一个。两者都是有效的pdf。
这是我目前的代码,但未添加页面:
PdfDocument pdfDocument = new PdfDocument(writer);
PdfDocument srcPdf = new PdfDocument(reader);
for(int i=1; i<=srcPdf.getNumberOfPages(); i++) {
pdfDocument.addPage(srcPdf.getPage(i));
}
srcPdf.close();
//I close the other pdf at a later moment
答案 0 :(得分:0)
addPage
方法旨在处理同一文档的页面。
要复制不同文档的页面,应使用PdfMerger
或copyPagesTo
功能。
前一个很简单:
PdfDocument mergedDoc = new PdfDocument(new PdfWriter(destination));
PdfMerger merger = new PdfMerger(mergedDoc);
for(File source : sources){
// set source pdf
PdfDocument sourcePdf = new PdfDocument(new PdfReader(source));
// merge
merger.merge(sourcePdf, 1, sourcePdf.getNumberOfPages()).setCloseSourceDocuments(true);
// close source
sourcePdf.close();
}
merger.close();
mergedDoc.close();
后一种也很简单:
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
PdfDocument insertDoc = new PdfDocument(new PdfReader(INSERT));
insertDoc.copyPagesTo(1, 1, pdfDoc, 4);
insertDoc.close();