0

我知道我可以使用 PDFBox 将多个 PDF 合并为一个 PDF。但是有没有办法合并页面?例如,我在 PDF 中有一个标题,并希望将其插入到合并 PDF 的第一页的顶部并将所有内容向下推。有没有办法使用 PDFBox API 做到这一点?

4

1 回答 1

0

这是一些代码,可以将两个文件复制到一个合并的文件中,每个文件都有多个副本。它逐页复制。这是我使用这个问题的答案中的信息得到的:Canduplicating 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();
于 2013-09-30T19:23:02.287 回答