我的问题是:提取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