2013-06-03 79 views
0

我有一個包含2頁的PDF文件。當我用解析器解析它時,在Ojective-C中,我有以下情況。解析PDF在同一頁獲得兩次相同的文本

第一頁一切正常,我有我應該有(我在PDF閱讀器像預覽,Adobe公司的閱讀器...直觀地看到)文本。對於第二頁,我有我在第二頁中看到的文本加上第一頁中的文本的一部分,這不在第二頁中。

我嘗試了與其他解析器:pdftotext(xpdf)他們設法得到正確的結果。 Pdfminer(在Python中)https://pypi.python.org/pypi/pdfminer/,我得到了和我一樣的結果。第一頁中的部分文本被提取兩次。

我的問題是:這是怎麼發生的?你見過這種情況嗎?如果文本確實出現在第二頁中,爲什麼pdf閱讀器不能顯示它?你有什麼想法嗎?

+0

也許文本在頁面上,但不可見,因爲:稱爲「作物框」的東西,稱爲「OCG」,...也許文本是白色的白色。沒有看到實際的PDF,只能猜測,但有很多可能的原因。 –

+0

我試圖在Illustrator和Acrobat Pro中打開該文件,但我什麼都看不到。我也嘗試在第二頁中選擇文本,只不過是我們可以看到的文本。 感謝您分享您的想法。歡迎更多的想法。 – bob

+0

我看了一下PDF的參考資料,我的pdf中沒有OCG,因爲它是1.4 pdf,可選內容只在1.5版本開始。我驗證了我的文檔目錄詞典,並且沒有OCProperties條目。 – bob

回答

2

我已經跑了通過Acrobat中的文件(使用「檢查文檔」)和它告訴我有它的一些隱藏的文本。看看下面的屏幕截圖:

enter image description here

在屏幕截圖中的紅色文字標誌着什麼是隱藏的。正如mkl所示,它位於MediaBox之外,這使得在PDF查看器中查看文檔時不可見。這並不意味着文本在那裏。如果你看看內容流(這是解析器所做的),你仍然可以找到它。

解析器應丟棄MediaBox外部的所有內容。通常有一個選項可以做到這一點。我知道在iText中有一個;我不知道其他解析器。

相關問題