使用iText从pdf文件中提取文本列

使用iText从pdf文件中提取文本列,第1张

使用iText从pdf文件中提取文本

我是iText文本提取子系统的作者。您需要做的是开发自己的文本提取策略(如果您看一下如何

PdfTextExtractor.getTextFromPage
实现的话,就会发现您可以提供可插拔的策略)。

您将如何确定列的开始和停止位置完全取决于您-这是一个难题-PDF没有列的任何概念(哎呀,它甚至没有词的概念-
只是将列放在一起默认策略提供的文本提取非常棘手)。如果您知道高级列的位置,则可以在文本渲染侦听器回调中使用区域过滤器(iText库中有代码可以执行此 *** 作,最新版本的《
iText In Action》提供了详细示例) 。

如果需要从任意数据中获取列,则需要先进行一些算法工作(如果有工作的话,我很乐意看一下)。有关如何解决此问题的一些想法:

  1. 使用类似于默认文本提取策略(LocationAware …)中使用的算法,以获取单词和X / Y位置的列表(一定要同时考虑旋转角度)
  2. 对于每个单词,画一条假想的线贯穿页面的整个高度。扫描以相同的X位置开头的所有其他单词。
  3. 扫描时,还要查找与X位置相交的单词(但不要以X位置开头)。这将为您提供页面上列起始/终止Y位置的潜在位置。
  4. 有了X和Y列后,就可以采用区域过滤方法

另一种可能同样可行的方法是分析绘制 *** 作并查找长的水平和垂直线(假定列以表格形式划分)。现在,iText内容解析器没有这些 *** 作的回调,但是可以很容易地添加它们。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5132133.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存