Riv*_*ivu 5 java pdf-generation pdfbox
我有两个 PDF 文件(命名为:A1.pdf 和 B1.pdf)。现在我想以编程方式用第一个 (A1.pdf) 替换第二个 PDF 文件 (B1.pdf) 的某些页面。在这种情况下,我使用的是 PDFBox 库。
这是我的示例代码:
try {
File file = new File("/Users/test/Desktop/A1.pdf");
PDDocument pdDoc = PDDocument.load(file);
PDDocument document = PDDocument.load(new File("/Users/test/Desktop/B1.pdf"));
document.removePage(3);
document.addPage((PDPage) pdDoc.getDocumentCatalog().getAllPages().get(0));
document.save("/Users/test/Desktop/"+"generatedPDFBox"+".pdf");
document.close();
}catch(Exception e){}
Run Code Online (Sandbox Code Playgroud)
这个想法是替换第三页。在此实现中,页面附加到输出 pdf 的最后一页。谁能帮我实现这个?如果没有 PDFBOX。你能在java中推荐一些其他的库吗?
此解决方案创建第三个 PDF 文件,其中包含您要求的内容。请注意,页面是从零开始的,因此问题中的“3”必须是“2”。
PDDocument a1doc = PDDocument.load(file1);
PDDocument b1doc = PDDocument.load(file2);
PDDocument resDoc = new PDDocument();
List<PDPage> a1Pages = a1doc.getDocumentCatalog().getAllPages();
List<PDPage> b1Pages = b1doc.getDocumentCatalog().getAllPages();
// replace the 3rd page of the 2nd file with the 1st page of the 1st one
for (int p = 0; p < b1Pages.size(); ++p)
{
if (p == 2)
resDoc.addPage(a1Pages.get(0));
else
resDoc.addPage(b1Pages.get(p));
}
resDoc.save(file3);
a1doc.close();
b1doc.close();
resDoc.close();
Run Code Online (Sandbox Code Playgroud)
如果您想从命令行工作,请查看此处: https ://pdfbox.apache.org/commandline/
然后使用 PDFSplit 和 PDFMerge。
| 归档时间: |
|
| 查看次数: |
2011 次 |
| 最近记录: |