2014-03-13 143 views
4

我們使用iText版本5.5 PdfCopy合併多個帶標籤的PDF。 (那些被標記的PDF文件不被iText創建),我們得到了以下錯誤而document.closeIText merge tagged pdf - 重建失敗:未找到預告片。 Original message:PDF startxref not found

java.lang.NullPointerException 
at com.itextpdf.text.pdf.RefKey.<init>(RefKey.java:59) 
at com.itextpdf.text.pdf.PdfCopy.fixTaggedStructure(PdfCopy.java:822) 
at com.itextpdf.text.pdf.PdfCopy.flushTaggedObjects(PdfCopy.java:779) 
at com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:854) 
at com.itextpdf.text.Document.close(Document.java:416) 
com.itextpdf.text.exceptions.InvalidPdfException: Rebuild failed: trailer not found.; Original message: PDF startxref not found. 
at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:668) 
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:181) 
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:230) 
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:207) 
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:197) 

PDF是有效的,幷包含拖車和%EOF,文件不會被損壞。其他什麼可能導致此?

+0

你想合併的PDF也許一個沒有標記或ISN」 t正確標記。無論如何:如果沒有重現問題的例子,回答這個問題是不可能的。 –

回答

8

您可能已經找到答案。我有同樣的問題,我通過在實例化PdfReader之前關閉文檔來解決它。

例子:

**

Document tempDoc = new Document(PageSize.A4, 40, 40, 80, 20); 
ByteArrayOutputStream tempBaos = new ByteArrayOutputStream(); 
PdfWriter.getInstance(tempDoc, tempBaos); 
tempDoc.open(); 

tempDoc.add(tempChap); 
tempDoc.close(); // Closing the document before calling Reader 

PdfReader reader = new PdfReader(tempBaos.toByteArray()); 

**

希望這將有助於

+0

你是一個天才。非常感謝分享 – user1928158

相關問題