我的問題是:提取PDF文本
我如何可以提取其列分成的方式,我得到這個列分隔結果的PDF文件中的文本?
背景: 我從事關於文本分析(特別是科學文本)的項目。 這些文本有時會以多列布局發佈,每列都有一個單獨的頁碼。 要通過佈局的頁面編號來提取文本,按列提取文本將非常有用。
我用PDFBOX,並試圖/搜索幾件事情:
- 我試過
PDPage
類的getThreadBeads()
方法 - >結果:列表0大小 - 我試過graping的文本與
getCharactersByArticle()
方法 - >文本沒有分成列
(我試過這與PDF文件的已發佈文本以及自我創建.doc文件,每個都有一個多colu MN佈局)
的事情是,PDFBOX似乎通過自動列將文本拆分: 如果我設置在真PDFTextStripper
一個頁面的所有跡象都在一條線上設置的setSortByPosition()
不承認單獨的列。 但是,如果我設置setSortByPosition()
爲假脫衣舞師正在做這種劃分。
爲了讓我看看pdfBox源代碼: 關鍵的方法是PDFTextStripper的writePage()
方法。 這裏空格(大多數pdf中沒有給出)和換行符顯然計算在內。 但我找不到Stripper是如何計算分欄符的。
所以再次提問:
- 如何PDFTextStripper計算分欄符?
- pdfBox API中是否有方法來捕捉這個/按列提取文本?
- 這可能與其他pdf-api?
在此先感謝
謝謝!因此,PDF文檔所依賴的閱讀順序在創建時已被安全保存到PDF文檔中? I.e .:當我將.doc轉換爲pdf時,pdf(通常)以閱讀順序保存文本?如果是:是否有一種方法可以在創建PDF時存儲有關列的信息? – matthiasboesinger 2014-10-07 13:36:33
*當我將.doc轉換爲pdf時,pdf(通常)以閱讀順序保存文本?* - *您的*文檔屬於這種類型。這似乎是一個相當自然的秩序。但我不能說真的有多普通。無論如何,你必須檢查你的PDF源,因爲它們可能不尋常......;) – mkl 2014-10-07 13:40:20
*有沒有一種方法可以在創建PDF時存儲有關列的信息? - 是的,但似乎沒有被使用過在你的示例文檔中,否則你對'getThreadBeads'和'getCharactersByArticle'的實驗會更加成功。 – mkl 2014-10-07 13:41:49