当前位置: 首页 > 知识库问答 >
问题:

使用PDFBox替换PDF页面

祝叶五
2023-03-14
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){}

这个想法是取代第三页。在这个实现中,页面附加到输出PDF的最后一页。有人能帮我实现这一点吗?如果不是用pdfbox。你能推荐一些Java中的其他库吗?

共有1个答案

长孙阳焱
2023-03-14

解决方案创建第三个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();

如果您希望从命令行开始工作,请查看以下内容:https://pdfbox.apache.org/commandline/

然后使用PDFSplit和pdfmerge。

 类似资料:
  • 我正在将一些PDF编辑工具从iTextSharp更新到iText7。 在iTextSharp中,pdfStamper类中有一个方法:pdfStamper。ReplacePage()。然而,iText7中的pdfStamper类已被删除,我在复制相同的功能时遇到困难。 假设我有文档X,需要用文档Y的第1页替换第4页,但我希望结果保存到一个新的文档Z。 到目前为止,我有3行使用CopyPageTo方法

  • 目前我正在尝试将PDF转换为PDF/A。 然而,不知何故,我不知道我是否可以转换色彩空间,有没有办法这样做? 这是我的代码,然而: 色彩空间被添加但是在验证我得到: 对于每个页面/元素,它都经常出现。 我能做点什么来反对它吗?比如转换颜色空间?使用她的图书馆?

  • 当使用PDFBox将PDF(可填充)转换为Jpeg时。复选框中的勾号将转换为方框字符 警告[org.apache.pdfbox.rendering.type1glyph2d]代码52(a20)没有字形,字体为ZapfDingbats public static void main(String[]args)引发异常{ 我如何设置字体到PDF图像代码?

  • 我正在使用PDFbox下载PDF。我想在中间添加一些新页面。 此代码在PDF结尾处插入新页面。如何在另一个位置插入页面?

  • 一段时间以来,我一直在尝试如何翻转pdf,但还没有找到答案。我只找到了如何使用Graphics2D翻转图像: 你能帮我用PDFbox拿一下吗? 谢谢

  • 我真的很纠结于PDFBOX的文档。对于这样一个受欢迎的图书馆来说,信息似乎有点稀薄(对我来说!)。 无论如何,Im的问题与保护PDF有关。目前我想要的只是控制用户的访问权限。具体地说,我想防止用户能够修改PDF。 如果我省略了访问权限代码,那么一切都可以正常工作。我正在阅读一个PDF从外部资源。然后我读取并填充字段,在保存新的PDF之前添加一些图像。一切正常。 当我添加这段代码时,所有的文本和图像

  • 问题内容: 如何使用PDFBox从PDF文档中读取特定页面(具有页码)? 问题答案: 这应该工作: 如本教程的“ 书签”部分中所示 更新2015年,版本2.0.0快照 似乎已将其删除并放回(?)。 getPage 在2.0.0 javadoc中。要使用它: 该 getAllPages 方法已更名 GETPAGES