簡體   English   中英

將 PDF 與 PDFBox 合並時如何獲得正確的頁碼?

[英]How to get correct page numbering when merging PDFs with PDFBox?

我正在將多個 PDF 與 PDFBox 的PDFMergerUtility合並。

        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)中,頁碼顯示不正確。 例如,如果我將三個文檔合並為三個頁面,則生成的頁碼為:

1
2
3
1
2
3
1
2
3

代替

1
2
3
4
5
6
7
8
9

受影響的查看者似乎是從 PDF 中的某些元數據中提取頁碼信息,而不是自己計算。

有沒有辦法用 PDFBox 解決這個問題?

感謝 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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM