我知道我可以使用PDFBox将多个PDF合并为一个PDF。但有没有办法合并页面?例如,我有一个PDF格式的标题,并希望将其插入到组合PDF的第一页的顶部,并将所有内容向下推。有没有办法使用PDFBox API?
答案 0 :(得分:0)
以下是一些代码,用于将两个文件复制到一个合并的文件中,每个文件都有多个副本。它按页面复制。这是我在这个问题的答案中使用的信息:Can duplicating a pdf with PDFBox be small like with iText?
所以你要做的就是只制作doc1第一页的一份副本和doc2所有页面的一份副本。有一个评论,你必须做出改变,以留下一些页面。
final int COPIES = 1; // total copies
// Same code as linked answer mostly
PDDocument samplePdf = new PDDocument();
InputStream in1 = this.getClass().getResourceAsStream(DOC1_NAME);
PDDocument doc1 = PDDocument.load(in1);
List<PDPage> pages = (List<PDPage>) doc1.getDocumentCatalog().getAllPages();
// *** Change this loop to only copy the pages you want from DOC1
for (PDPage page : pages) {
for (int i = 0; i < COPIES; i++) { // loop for each additional copy
samplePdf.importPage(page);
}
}
// Same code again mostly
InputStream in2 = this.getClass().getResourceAsStream(DOC2_NAME);
PDDocument doc2 = PDDocument.load(in2);
pages = (List<PDPage>) doc2.getDocumentCatalog().getAllPages();
for (PDPage page : pages) {
for (int i = 0; i < COPIES; i++) { // loop for each additional copy
samplePdf.importPage(page);
}
}
// Then write the results out
File output = new File(OUT_NAME);
FileOutputStream out = new FileOutputStream(output);
samplePdf.save(out);
samplePDF.close();
in1.close();
doc1.close();
in2.close();
doc2.close();