2017-09-29 47 views

回答

1

有問題的PDF已損壞:交叉引用表的偏移量和大部分對象偏移量都是錯誤的。

例如PDF聲稱交叉參考表從文件位置24732開始,但實際上從位置1594356開始。而對象208的交叉參考表條目聲稱它位於位置24713,而實際上位於1594337.

因此,觀察到的錯誤信息「在指定位置找不到外部參照表」是完全正確的。

雖然表中的第一個偏移量是正確的,但乍一看是第一個圖像流。

看起來好像生成PDF的軟件在確定對象偏移量時不計算圖像流內容。或者它佔用了佔位符圖像非常小的模板,並將這些小圖像的圖像流替換爲更大的流,而無需更新交叉參考偏移。

+0

謝謝你的採訪。我在這裏有沒有解決方法?我只是想將其轉換爲圖像來提取文本。 –

+1

在Adobe Reader中打開PDF。當你再次關閉它時,Adobe Reader會詢問你是否應該保存它。保存的副本被修復。 (但是,Adobe Reader可能會使用PDF 1.5中提供的功能保存該文件;但仍有一些工具和庫無法處理這些功能。)或者,您可以將圖像從Adobe Reader複製到圖形您選擇的程序。 – mkl

+0

謝謝,我欣賞的意見:)你會碰巧知道是否會有一個很好的方法來實現這一點?我可能正在處理數千個類似的文件。 –

2

您可以使用QPDF,因爲它具有錯誤的外部參照表恢復方法。

剛剛運行qpdf broken.pdf repaired.pdf其中broken.pdf是輸入中斷的PDF和repaired.pdf是新的文件名。

我試過用你鏈接到的PDF,它工作正常。

+0

真棒 - 我正在尋找。謝謝! –

+0

工程真不錯。謝謝! – jorgeas80