2013-07-11 156 views
2

我試圖從pdf中提取表格document從PDF中提取表格

我嘗試了pdf - > html - >提取表格的路由。我上面轉換爲html時提到的pdf會產生垃圾,也許是因爲字體,文檔不是英文。

用x提取PDF和這個解決方案需要從URL上面提到的,這將有表,但不總是在相同的位置未來的PDF工作y座標是不是一種選擇。

請幫忙,

在此先感謝。

+1

PDF不包含明確的表格數據。它只包含行和字符字形,我們傾向於將其解釋爲表格。因此,您的任務涉及將我們的人員表格識別功能放入代碼中,這是一項非常艱鉅的任務 – mkl

+0

@mkl所以簡而言之,如果它不是一個死或死的情況,我最好不要考慮解析這個pdf嗎? :) – meadhikari

+1

我一次使用[PDFMiner](https://pypi.python.org/pypi/pdfminer/)做了這樣的事情。基本上可以得到所有對象的x和y位置的流,然後將它們從上到下,從左到右(至少對於英語)進行分組,然後對單元格的結束位置進行智能猜測你對上下文的瞭解。這是痛苦的,每個PDF都是不同的。如果你不必解析它,不要。這是多久發佈一次? – ChrisP

回答

5

PDF不包含明確的表格數據。它只包含行和字符字形,我們傾向於將其解釋爲表格。因此,您的任務涉及將我們的人員表格識別功能放入代碼中,這是一項非常艱鉅的任務

一般來說,如果你果然未來的PDF文件將使用相同的軟件以非常相似的方式產生,它可能是值得花時間去探討一些簡單的文件,按照提示來識別的內容個別領域。

你特定的文件,不過,有一個額外的缺點:它不包含直接文本提取所需的信息!你可以嘗試複製從Adobe Reader粘貼&,你會得到(至少我是)從WinAnsi範圍內的半隨機角色。

這是由於文檔中的所有字體都聲稱他們使用WinAnsiEncoding,即使這樣引用的字符明確不是來自WinAnsi字符選擇。

因此,從文檔中提取可靠的文本而不使用OCR是不可能的!

(試用拷貝&從Adobe Reader粘貼通常是文本提取是否可行的一個很好的第一個測試; Reader的文本提取方法已經開發了很多年,因此已經變得相當不錯。你不能提取任何理智與Acrobat Reader,文本提取將是一個非常艱鉅的任務確實)

+0

如果我想要通過OCR路線,您能指出我的方向嗎? – meadhikari

+1

不幸的是,我還沒有不得不訴諸自己的OCR。 – mkl

+0

我正試圖解決這個問題。我遇到的有趣的事情:我解析了一個PDF格式,看起來好像是從html/word文檔生成PDF格式的。當我將它從Acrobat Pro導出到Word文檔時,表格格式在輸出文件「.docx」中是100%正確的。我的問題是如果格式不存在,Acrobat如何完美提取表格? – amergin

1

你可以使用塔布拉: http://tabula.nerdpower.org 它是免費的,還挺好用

+0

你試過[Tabula](http://source.opennews.org/en-US/articles/introductions-tabula /)在OP提供的[文件](http://www.nea.org.np/images/supportive_docs/55082070-3-19.pdf)正如我在我的回答中提到的那樣,文檔*不包含直接文本提取所需的信息,即使用PDF語法編碼的信息進行文本提取,而Tabula依賴PDFBox進行僅使用此類信息的文本提取。因此,我懷疑塔布拉現在會在這裏幫忙。 – mkl

+0

您的評論後,我用tabula提取第一個表信息爲csv。它似乎工作,雖然文本被改變(由於enconding我認爲)。儘管如此,我認爲我不具備提供更高級答案的技術知識。 – panchtox

+1

那麼,文本最有可能被改變,因爲文檔沒有提供直接文本提取的信息,並且假設取代這些信息可能是錯誤的。 – mkl