PDF数据提取 - 需要建议

时间:2011-03-17 10:57:46

标签: algorithm pdf data-structures data-extraction

我创建了一个 pdf提取工具。附加样本屏幕。 enter image description here用户可以加载pdf文件并选择他想要的数据区域。然后我抓住pdf坐标和页码,然后将其保存为模板。一旦用户给出了pdf文件列表,工具就能够根据模板文件提取数据。 My tool is very much similar to this.

现在问题有时在某些pdf中,提取所需的数据部分会转移到下一页。 (转移的原因是;我会给出一个示例。如果您认为您购买的商品清单,打印的“总价值”的地方取决于你购买的物品数量:如果它是一个很长的列表总数就会降到最低位置,中间或接近顶部。

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

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

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

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

找到它

答案 2 :(得分:0)

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

p.Find("ORDER QTY").Down()