我创建了一个 pdf提取工具。附加样本屏幕。 用户可以加载pdf文件并选择他想要的数据区域。然后我抓住pdf坐标和页码,然后将其保存为模板。一旦用户给出了pdf文件列表,工具就能够根据模板文件提取数据。 My tool is very much similar to this.
现在问题有时在某些pdf中,提取所需的数据部分会转移到下一页。 (转移的原因是;我会给出一个示例。如果您认为您购买的商品清单,打印的“总价值”的地方取决于你购买的物品数量:如果它是一个很长的列表总数就会降到最低位置,中间或接近顶部。
因此,现在我正在考虑识别pdf的结构而不是获取坐标。
但我没有明确的想法。请分享任何内容,您认为有助于解决此问题。我再次重申,我正试图从pdf中获取数据。因此,可以捕获pdf 文件的结构。
我的想法是,如果我能识别结构,那么我可以说出价值在哪里。例如,我尝试将pdf转换为html并尝试浏览html标记值。 (body-> div-> table-> td->等)但是它没有成功.. :(
答案 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()