2015-06-08 46 views
1

:我將我自己的PDF解析器/壺。目前,我能夠解析現有的PDF文件,甚至根據早期解析的數據製作新的PDF。但問題是,當我打開一個新的PDF文件(由我的解析器/製造商製作)時,Adobe Reader想要重新設計文檔(當我關閉文檔閱讀器時建議我存儲「更改的文檔」)。當我的文檔內部結構不正確時,我曾遇到過這樣的問題。但是使用我的解析器的最新版本,我無法在文件結構中看到任何問題,並需要詢問「PDF大師」。我應該說我通過在線PDF檢查工具和Adobe Reader Pro內部進行了PDF結構檢查。此外,我發現的所有現有PDF解析器都可以解析我的PDF,而不會有任何問題。我遇到的唯一問題是Adobe Reader。Acrobat Reader軟件要重新設計我的PDF文件

所以,我有兩個文件:

  1. Initial PDF file;
  2. Secondary PDF file, made by my tool;

事實上,「輔助PDF」是初始PDF的簡單副本,其內部PDF結構略有變化。當然,所有的「外部參照」偏移也被改變了。這兩個文件都非常簡單,只有18個內部對象,其中大部分都是字體對象。 「第二PDF」是被Adobe Reader認爲是越野車的PDF。

也將非常感激,如果有人能夠給我一個鏈接,爲PDF文件中的任何特定讀者的規則(如果您有任何)。

回答

1

在_secondary.pdf交叉引用表中的條目是只有19字節長和不20字節如預期:

每個條目應正好是20個字節長,包括最終行標記。

你不是唯一一個生成這樣的文件的人,這就是爲什麼大多數讀者/解析器都有一個後備集成或忽略20字節計數的原因。

總之,這個文件應該被標記爲損壞(Acrobat中所做的),因爲它需要手動解析交叉引用表或完整的文件。在這種情況下,解析器不能使用固定條目大小直接跳轉到交叉引用表中的對象偏移量定義。

+0

非常感謝你,Jan!這麼小的問題(一個字節的差別),但我花了很多時間在這個問題上工作。希望別人會錯過我的錯誤。 –

相關問題