我们从客户端获取大量不同格式的pdf文件中的数据[布局方面],这些文件通常是报告输出,通常是正确注释的[它们通常不需要OCR],但格式不够好,简单地从杂技演员那里复制几百页文本是行不通的。

到目前为止我发现的最好的方法是编写一个脚本来解析几乎有效的xml输出(注释无效,许多字符以不同的方式转义,é变为[[[e9]]]é,$变为\\ $,%变为\\%...)命令行pdftoipe实用程序(转换为名为ipe的程序的pdf文件),它为我提供了文本元素在每个页面上的位置[见下面的示例],效果很好对于报告,其中相同的值位于我关注的每个页面上的相同位置,但是需要额外的脚本工作来导入矩阵[交叉表] pdf文件。 pdftoipe完全没有用于此目的,并且最多可以使用cygwin for windows手动编译。

是否有可以通过我能容忍的某种脚本语言轻松实现这些库? 图形工具也很棒。 还有一匹小马。

此示例的 pdftoipe输出如下所示:

<ipe creator="pdftoipe 2006/10/09"><info media="0 0 612 792"/>
<-- Page: 1 1 -->
<page gridsize="8">
<path fill="1 1 1" fillrule="wind">
64.8 144 m
486 144 l
486 727.2 l
64.8 727.2 l
64.8 144 l
h
</path>
<path fill="1 1 1" fillrule="wind">
64.8 144 m
486 144 l
486 727.2 l
64.8 727.2 l
64.8 144 l
h
</path>
<path fill="1 1 1" fillrule="wind">
64.8 144 m
486 144 l
486 727.2 l
64.8 727.2 l
64.8 144 l
h
</path>
<text stroke="1 0 0" pos="0 0" size="18" transformable="yes" matrix="1 0 0 1 181.8 707.88">This is a sample PDF fil</text>
<text stroke="1 0 0" pos="0 0" size="18" transformable="yes" matrix="1 0 0 1 356.28 707.88">e.</text>
<text stroke="1 0 0" pos="0 0" size="18" transformable="yes" matrix="1 0 0 1 368.76 707.88"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 692.4"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 677.88"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 663.36"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 648.84"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 634.32"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 619.8"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 605.28"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 590.76"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 576.24"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 561.72"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 547.2"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 532.68"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 518.16"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 503.64"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 489.12"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 474.6"> </text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 67.32 456.24">If you can read this</text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 214.92 456.24">,</text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 219.48 456.24"> you already have A</text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 370.8 456.24">dobe Acrobat </text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 67.32 437.64">Reader i</text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 131.28 437.64">n</text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 141.12 437.64">stalled on your computer.</text>
<text stroke="0 0 0" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 337.92 437.64"> </text>
<text stroke="0 0.502 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 342.48 437.64"> </text>
<image width="800" height="600" rect="-92.04 800.64 374.4 449.76" ColorSpace="DeviceRGB" BitsPerComponent="8" Filter="DCTDecode" length="369925">
feedcafebabe...
</image>
</page>
</ipe>

===============>>#1 票数:3 已采纳

我们在其中一个应用程序中使用Xpdf 它是一个c ++库,主要用于pdf渲染,虽然它有一个文本提取器,可以用于这个项目。

===============>>#2 票数:1

pdftohtml -xml

虽然pdftoipe看起来更详细!!

===============>>#3 票数:1

如果您在调用外部函数时没问题,可以使用ghostscript - 查看分发包含的ps2ascii脚本。 我不确定你想从图形工具中得到什么 - 你推动选择输入和输出文件的大按钮? 预览? 您可能可以使用GSView,具体取决于您的需求。

===============>>#4 票数:0

你看过Aspose吗? 我们将它用于ASP.net应用程序,我也看到了一些使用它的vbscript示例。 它也不是特别贵。

http://www.aspose.com/

  ask by sphereinabox translate from so

未解决问题?本站智能推荐:

1回复

提取并导入PDF文件的文本

我需要翻译几个PDF文件(图像很重),问题是那里有很多文本,我正在寻找一种方法将其从文本框中提取到文本文件中进行翻译,然后将其导入回相同的文本中盒子。 有一个程序可以执行类似Infix的操作,但是我无法组合文本框,结果我弄乱了文本。
1回复

导出pdf表数据并将其导入mysql

我想从pdf文件中导出表数据并将其插入到mysql数据库中。 我该怎么做? 问候,Rekha
1回复

如何在node.js中导入现有的PDF文件

我正在为节点导入例程,到目前为止,我可以使用pdf2json从PDF导入文本节点,效果很好,但不适用于基于图像且不包含文本的PDF。 所以我下载了pdf2img,但是此模块有很多问题,我现在遇到的一个问题是,运行该模块后,我创建了很多0字节的png文件,没有内容,并且出现错误消息:
1回复

如何使用R导入多个PDF文件并更改其名称

我有一个包含+100个PDF文件的文件夹,每个文件都有一个名称。 我也有一个csv文件,该文件具有与PDF匹配的名称,另一列具有数字ID号。 我要做的是将所有这些导入R中,并基于匹配名称(从文件中)添加数字ID,最后使用该新名称导出它们。 我对如何使用csv或txt文件有一个很好的主意
1回复

R:导入pdf并使用文件名作为id创建TermDocumentMatrix

我正在将pdf导入R以进行一些文本分析。 我有许多pdf文件,它们的名称是它们的出版年份(每年出版一次)。 在导入它们之后,我想创建一个TermDocumentMatrix,其第一个术语“ docs”(即tdm的第一列)将使用发布年份而不是文档编号。 确实,当我创建tdm时,它们会为其
1回复

无法使用mpdf导入PDF

大家。 我最近开始在我的网站上使用mpdf。 创建新的pdf效果很好,但是我无法导入现有的pdf。 每当我尝试执行导入时,都会收到此错误: (这不是真正的路径) 我在PHP中包含了mpdf。 该文件夹和文件位于chmod 777上,而pdf均为1.4版 这是我尝试
1回复

导入并在php中签名pdf

我有一个要使用证书和php脚本签名的pdf文件。 我将动作分解为2个步骤: 在脚本中导入pdf 用证书签名 我可以解析第一部分...我正在使用TCPDI( https://github.com/pauln/tcpdi )和TCPDF。 这是我的脚本: 我
2回复

从PDF提取数据

我每天要输入15+ PDF。 它们是从表中生成的,其中“空白”是从特定表字段中填写的。 我可以使用任何工具或python代码示例尝试开发从PDF提取数据以写入或创建表以导入数据库表的方法吗? 该数据库当前为Access mdb。 谢谢
2回复

mpdf从另一个pdf文档导入所有页面

我希望能够在我用mpdf创建的文档中附加整个pdf文档。 我可以使用以下代码导入一个页面: 但是有没有办法导入所有页面而不仅仅是最后一页?
2回复

将PDF文件插入Core Data?

我正在使用我的应用程序导入一些PDF文件。 但我正试图在我的数据库中插入我的PDF文件。 我正在使用核心数据。 是否有可能做到这一点 ? 如果是,我该怎么办? 我必须使用哪种类型(NSData,NSDocument,......?) 非常感谢! :)