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

如何在将PDF与PDFBox合并时获得正确的页码?

柴瀚昂
2023-03-14

我正在合并多个PDF与PDFBox的PDFMergerUgic

        try (PDDocument result = new PDDocument()) {
          result.setVersion(1.5f);
          PDFMergerUtility merger = new PDFMergerUtility();

          for (PrintableDocument pd : ivDocuments) {
            if (pd.getData() == null)
              continue;
            try (PDDocument pdd = PDDocument.load(pd.getData())) {
              merger.appendDocument(result, pdd);
            }
          }

          result.save(os);
        }

除了一个细节外,这一切都很好。在一些PDF查看器(Firefox、SumatraPDF、Chrome)中,页码显示不正确。对于exmaple,如果我合并三个文档,每个文档有三页,则生成的页码为:

1
2
3
1
2
3
1
2
3

而不是

1
2
3
4
5
6
7
8
9

受影响的查看者似乎是从PDF中的某些元数据中提取页码信息,而不是自己计算。

有没有办法用PDFBox解决这个问题?

共有1个答案

淳于博
2023-03-14

多亏了Codo,我最终得到了以下解决方案:

          PDPageLabels pageLabels = new PDPageLabels(result);
          PDPageLabelRange pageLabelRange = new PDPageLabelRange();
          pageLabelRange.setStyle(PDPageLabelRange.STYLE_DECIMAL);
          pageLabelRange.setStart(1);
          pageLabels.setLabelItem(0, pageLabelRange);
          result.getDocumentCatalog().setPageLabels(pageLabels);

以下是创建页面标签的更多示例:https://simplesolution.dev/creating-pdf-document-page-labels-in-java-with-apache-pdfbox/

 类似资料:
  • 这就是我想做的: > 使用pdfbox制作2个不同的pdf文件 使用pdfmerger将这两个文件合并在一起 如果要将#1保存到服务器端本地硬盘并加载#2的文件,我知道如何执行此操作。但我想做的是使用“直接从内存”。我已经搜索了这个pdfboxes中的所有方法,但仍然找不到它。 这是我从本地文件获取的代码 谢谢你。

  • PDF内容流 表示pdf使用F1字体,设置fontsize 40.959999。 我有一个关于实际字体大小是否为40.959999的问题。因为字体大小40太大了,但是在adobe arcrobat pro中显示的文本没有那么大。 在此pdf中没有意义

  • 是否可以使用PDFBox(或其他库)将两个PDF中的元素合并为最终PDF? 我不是在寻找页面连接,而是在合并页面元素:

  • 我有一个pdf,里面总共有6页的图片。我想将第1页和第2页合并为单个pdf,以此类推,共3到6页。 我将所有6页的pdf拆分为单独的pdf。 从PyPDF2导入操作系统导入PdfFileReader、PdfFileWriter pdf_splitter: fname=os.path.splitext(os.path.basename(path))[0] if name=='main': path=

  • 我正在使用Apache PdfBox来预设几个非PDF/A表单,并使用将这些PDF合并在一起,并创建新PDF的字节数组。 是否有一种方法可以告诉创建一个不能再修改的有效PDF/A文档?

  • 主要内容:合并多个PDF文档,示例在前一章中,我们已经看到如何将给定的PDF文档分成多个文档。 现在让我们学习如何将多个PDF文档合并为一个文档。 合并多个PDF文档 使用类的类将多个PDF文档合并到单个PDF文档中,该类提供了将两个或多个PDF文档合并到单个PDF文档中的方法。 以下是合并多个PDF文档的步骤。 第1步:加载现有的PDF文档 使用类的静态方法加载现有的PDF文档。 此方法接受一个文件对象作为参数,因为这是一个静态