2

我创建了一个pdf 提取工具。附上示例屏幕。在此处输入图像描述用户可以加载一个pdf文件并选择他想要的数据区域。然后我抓取 pdf 坐标和页码,然后将其保存为模板。一旦用户给出一个 pdf 文件列表,工具就能够根据模板文件提取数据。我的工具与此非常相似。

现在的问题是有时在某些 pdf 中,需要提取的数据部分被转移到下一页。(转移的原因是;我举个例子。如果您认为您购买的物品清单的清单,打印“总价值”的位置取决于您购买的物品数量:如果它是一个长列表总计去底部,中间或接近顶部)。

因此,现在我正在考虑识别 pdf 的结构而不是获取坐标。

但我没有一个明确的想法来做到这一点。请分享任何您认为有助于解决此问题的内容。我再次重申,我正在尝试从 pdf 中获取数据。因此可以捕获 pdf文件的结构。

我的想法是,如果我可以识别结构,那么我可以说出价值在哪里。例如,我尝试将 pdf 转换为 html 并尝试浏览 html 标记值。(body->div->table->td-> etc.)但这并不成功.. :(

4

3 回答 3

3

PDF 文件格式包括一组可选的元标记。如果使用这些,文件将具有某种结构。否则你就不走运了。我写了一篇博文,告诉你如何在http://www.jpedal.org/PDFblog/2010/09/the-easy-way-to-discover-if-a-pdf-file-contains-structured找到这个-内容/

于 2011-03-17T12:11:18.540 回答
3

PDF 只有弱结构,不像 div 或容器。有图层组和类似的,但坐标是唯一的东西,你可以指望。

尝试从左右描述文本类型和边距,以使您的捕获页面独立。

于 2011-03-17T11:33:52.230 回答
0

您可以使用一些“锚”,例如“订购数量”,然后捕获与该锚相关的数据。查看www.ivytools.net - 在该工具中,您可以定义规则,指定如何查找与文档中其他文本相关的值。在您的示例中,它将类似于:

p.Find("ORDER QTY").Down()
于 2018-10-08T19:05:02.467 回答