2015-02-06 69 views
0

讀取PDF時出現以下異常。它在Acrobat閱讀器中打開。我在另一個問題中讀到,雖然它在acrobat中打開,但沒有必要通過iText打開,因爲PDF包含錯誤,他建議修復PDF。但該文件來自客戶端,並且它們能夠打開Acrobat,因此我必須修復它或在Acrobat中顯示錯誤或警告。com.itextpdf.text.exceptions.InvalidPdfException:重建失敗:讀取文件指針處的字符串時出錯

com.itextpdf.text.exceptions.InvalidPdfException: Rebuild failed: Error reading string at file pointer 10891; Original message: Error reading string at file pointer 10891 
at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:655) 

摘錄PDF文件的

%PDF-1.1 
1 0 obj 
<< 
/Creator (Developer 2000) 
/CreatorDate (
/Author (Oracle Reports) 
/Producer (Oracle PDF driver) 
/Title (con5010I412014141258.pdf) 
>> 
endobj 
3 0 obj 
<< 
/Type /Pages 
/Kids 4 0 R 
/Count 5 0 R 
>> 
endobj 
7 0 obj 
<</Length 8 0 R>> 
stream 
BT 
  1. 有什麼辦法,我可以表明,PDF有錯誤的客戶端?無論是通過Acrobat還是其他軟件,而不是Java異常。
  2. 有沒有辦法繞過這個錯誤並繼續?我們遇到類似的安全PDF問題,我們解鎖了。請建議
+0

如果可能的話,請分享的PDF如果沒有,至少分享一個小除了聲音抵消10891。 – mkl 2015-02-06 05:12:33

+0

對不起,這是保密的,是否有反正要抵消? – 2015-02-06 05:38:58

+0

我的意思是一個小的「摘錄」...智能手機鍵盤...嘆息 – mkl 2015-02-06 07:53:06

回答

3

它實際上是一個無效的PDF。當我在文本編輯器中打開PDF時,我注意到這個頭文件的CreatorDate沒有右括號。我只是添加了像這個CreatorDate(2014年11月5日17時50分24秒)有效日期的閉括號,然後它的工作。我要求客戶端修正他們的問題

+0

在我的情況也是同樣的問題。謝謝:) – Zeeshan 2016-08-09 13:15:23

0

在文本編輯器(記事本,記事本++等)中編輯PDF,並簡單地添加一個右括號。

所以下面一行:
/CreatorDate(

更改:
/CreatorDate()

+0

在文本編輯器中「編輯」PDF往往會損壞PDF文件。 – mkl 2017-11-02 17:53:36

+0

不一定。舊的Oracle工具(Developer 2000)創建了格式不正確的「/ CreatorDate(」在PDF中的行。我個人使用記事本++來編輯成千上萬的PDF來解決這個問題。 – TurtlesAllTheWayDown 2017-11-02 19:14:19

+0

我說「通常不是」,這意味着「不一定」,但有人說:我希望你也可以在你添加或刪除一些字節時糾正交叉引用表或流:如果你不這樣做,你很可能會渲染它們,使得PDF即使某些PD​​F閱讀器可能會根據需要顯示PDF,PDF仍然會被損壞,進一步處理時可能會產生有趣的效果。 – mkl 2017-11-02 20:39:33

相關問題