[英]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.