PDFMiner pdf2型文本.py分析ord中的文本

2024-10-01 09:21:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python和pdfminer都是新手,但对一般编程不是很熟悉。我在Windows7和cygwin上使用了Python2.7。在

我正在用beauthulsoup编写一个脚本,从pdf中提取特定的信息。为此,我使用pdf2txt创建了这个pdf的一个.txt和一个.html文件,用于测试。 只是常用的命令:

python pdf2txt.py -o output.txt input.pdf

python pdf2txt.py -o output.html input.pdf

它们都有相同的问题:一些文本行出现了混乱。 pdf2txt是什么意思 (编辑:我找到了原来的网站)这是美属萨摩亚的网站:https://www.iamovers.org/ResourcesPublications/ShipperGuides.aspx?navItemNumber=580

例如,这是pdf第一页的一个部分的正确布局:

Documents Required

Copy of Passport (some ports require Passports for all family members listed on the 3299)
Form CF-3299
Supplemental Declaration (required by most ports)
Detailed inventory in English
Copy of Visa (if non-US citizen / permanent resident) / copy of Permanent Resident Card
I-94 Stamp / Card
Copy of Bill of Lading (OBL) / Air Waybill (AWB)
Form DS-1504 (Diplomats)
A-1 Visa (Diplomats)
Importers Security Filing (ISF)

这就是如何用pdf2实现txt和html的转换文本.py公司名称:

Documents Required

Copy of Passport (some ports require Passports for all family members listed on the 3299)
Form CF-3299
Supplemental Declaration (required by most ports)
Detailed inventory in English
Copy of Visa (if non-US citizen / permanent resident) / copy of Permanent Resident Card

Copy of Bill of Lading (OBL) / Air Waybill (AWB)
Form DS-1504 (Diplomats)
A-1 Visa (Diplomats)

Importers Security Filing (ISF)

I-94 Stamp / Card

由于某些原因,以字母“I”开头的行总是从它们的位置开始,并放在下一个空白行或上一个空白行上。还有一些其他的角色也一直在发生。在

我在这里发布了这个问题:https://github.com/euske/pdfminer/issues/121

一定是pdfminer出了问题。我对python的了解还不足以对包进行更改。有人知道怎么解决这个问题吗?在


Tags: ofpyformtxtinputoutputpdfhtml
1条回答
网友
1楼 · 发布于 2024-10-01 09:21:26

我不想给一些文件托管网站我的电子邮件地址,所以我不能看你提供的例子。在

但是,一般来说,即使PDF文件只包含整齐有序的行中的文本,PDF仍然不是文本文件格式。它更像是一个脚本,它告诉PDF阅读器哪些图形和文本元素应该放在页面的哪个位置以及以什么顺序放置。在

您似乎希望您的纯文本输出与您的PDF文件的布局相匹配,但如果您考虑一下,这并不是一个简单的要求。您可以假设(pdf2txt显然是这样)元素已经在PDF文件中从上到下、从左到右排序,然后扫描每个页面的元素列表,将遇到的任何可提取字符串或字符添加到字符串的末尾。但这是一个幼稚的假设,因为没有要求以任何方式对PDF页面中的元素进行排序(除了以防任何内容重叠而从后到前)

就我个人而言,我经常使用PDFTron的PDFNet的C版本。它能够生成一个文本页面上所有单词的列表,每个单词由一个字符串和一个边框表示。然后,您可以创建规则,将单词链接成行,并对这些行进行排序,尽管您希望考虑的布局类型越多(例如,按两列排列的文本、表格布局、沿页面边框的垂直文本等),确实会变得更复杂

还有一个Python version,所以也许你可以看看。但归根结底,你要做的其实不是那么简单。在

相关问题 更多 >