问题标签 [pdfminer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
35 浏览

python - OS X 的预览应用程序如何帮助从 pdf 中提取?

当我使用基于pdfminer的程序从 12 页的 pdf 文件中提取内容时,我得到的结果是错误的,只有 11 页。我用其他文件对其进行了测试,在大多数情况下都得到了正确的结果。

不小心在 OS X Yosemite(v10.10.4) 中使用预览应用打开它,没有任何其他操作就保存了它。然后我从程序中得到的结果是正确的。我发现这个文件的大小通过预览从 2m 更改为 300k,但不知道它做了什么。

我尝试搜索答案,但大多数主题都是关于使用预览应用程序的导出功能来压缩 pdf 文件,似乎没有人遇到与 pdfminer 相同的问题。

1、预览应用在“保存”时对pdf文件做了什么?

2,我该如何处理这个问题?

提前致谢!

0 投票
1 回答
2034 浏览

python - 在文档的页面上查找单词

我正在寻找一个优雅的解决方案来查找文档中的哪些页面上出现了我存储在 python 字典/列表中的某个单词。

我首先考虑将 .docx 格式作为输入,并查看了具有搜索功能的PythonDocx,但在 docx/xml 格式中显然没有真正的 pages 属性。如果我解析文档,我可以<w:br w:type="page"/>在 xml 树中查找事件,但不幸的是这些不显示非强制分页符。

我什至考虑先将文件转换为 PDF,然后使用PDFminer之类的东西逐页解析文档。

是否有任何直接的解决方案来搜索 .docx 文档中的字符串并返回它出现的页面

0 投票
0 回答
609 浏览

python - 如何使用python将双列pdf转换为word?

在我的项目中,我需要将 pdf 转换为双列格式。基本上我需要将它们转换为文本文件并且我使用pdfminer了 ,但是排序完全是一团糟(当涉及到双列时,即 IEEE 论文)。我刚刚尝试使用 docx 将双列字(docx)文件转换为文本,它几乎可以正常工作,至少对文本(而不是表格和方程式)。这就是为什么我在考虑是否可以像一些在线工具,即 Nitro Cloud 那样,最初将 pdf 转换为 word 以保持完整的顺序。但我需要使用 python 编程/python 包进行这种转换。

任何人都可以请提供一些见解。使用 pdfminer 的代码(我最初尝试过)。

(pdf样本:http ://www.iracst.org/ijacea/papers/vol2no62013/1vol2no6.pdf 。)

0 投票
1 回答
4442 浏览

python - PDFMiner - pdf2txt.py 乱序解析文本

我对 python 和 pdfminer 都是新手,虽然一般来说不是编程。我在 Windows 7 和 cygwin 上使用 Python 2.7。

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

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

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

它们都有相同的问题:某些文本行出现乱序。在这个 pdf 上运行 pdf2txt,你会明白我的意思:(编辑:我找到了原始网站。)这是美属萨摩亚在这个页面上的一个:https ://www.iamovers.org/ResourcesPublications/ShipperGuides.aspx?navItemNumber =580

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

需要文件

护照复印件(某些港口要求 3299 所列所有家庭成员的护照)
CF-3299 表格
补充声明(大多数港口要求)
英文详细清单
签证复印件(如果是非美国公民/永久居民)/永久居留复印件居民卡
I-94 印章 /
提单 (OBL) / 空运提单 (AWB)
表格 DS-1504 (外交官)
A-1 签证 (外交官)
进口商安全申报 (ISF)

这就是使用 pdf2txt.py 进行 txt 和 html 转换的结果:

需要文件

护照复印件(某些港口要求 3299 中列出的所有家庭成员的护照)
CF-3299 表格
补充声明(大多数港口要求)
英文详细清单
签证复印件(如果是非美国公民/永久居民)/永久居留复印件居民卡

提单 (OBL) / 空运提单 (AWB)
表格 DS-1504 (Diplomats)
A-1 签证 (Diplomats)副本

进口商安全申报 (ISF)

I-94 邮票/卡

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

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

这一定是pdfminer的问题。我还不太了解python,无法对包进行更改。有谁知道如何解决这一问题?

0 投票
1 回答
1264 浏览

python - PDFMiner 从 PDF 中提取文本而不混合顺序

我在 PDF 中有以下文本:

当我使用 PDFMiner 提取文本时,我得到以下信息:

如何使用 PDFMiner(或其他 Python 库)获得正确的输出?

0 投票
1 回答
916 浏览

python - 是否可以在 pdfquery 中使用正则表达式?

我们可以使用正则表达式来检测 pdf 中的文本(使用 pdfquery 或其他工具)吗?

我知道我们可以这样做:

但是我们需要这样的东西:

0 投票
0 回答
375 浏览

python - PDFMiner 错误地堆叠列表数据?

我正在尝试使用 PDFMiner 以一致的方式从 PDF 中提取信息,以便进行进一步分析,但我无法弄清楚如何正确提取表格数据。PDF Miner 似乎在行之前提取列。有没有人解决过这个问题或知道先提取行的方法?我尝试将其提取为 html,但遇到了同样的问题。任何帮助是极大的赞赏。

图片来自实际pdf:

图片来自实际 PDF

提取版本的图像

在此处输入图像描述

我用于提取的代码如下:

0 投票
1 回答
2065 浏览

python - 将参数传递给 pdf2txt 函数

我正在尝试使用 PDFMiner 从 PDF 文件中提取文本。我想使用脚本 pdf2txt.py 在

http://www.unixuser.org/~euske/python/pdfminer/index.html

用这条线

由于我正在使用 IDLE 在 Windows 上工作,因此我在 IDLE 中运行以下脚本

每次都给我

用法:C:\Usersernor\Desktop\Dictionary Construction\simple1.pdf [-d] [-p pagenos] [-m maxpages] [-P 密码] [-o 输出] [-C] [-n] [-A ] [-V] [-M char_margin] [-L line_margin] [-W word_margin] [-F boxes_flow] [-Y layout_mode] [-O output_dir] [-R 旋转] [-t text|html|xml|tag ] [-c 编解码器] [-s 比例] 文件...

我知道这是一条错误消息,告诉我该参数未解析。pdf2txt.py 的前几行如下:

我怎样才能格式化我的论点?我知道这是一个愚蠢的问题,但它让我发疯。

请帮我!

谢谢,

杰森

更新

按照 Luis 的建议,我将命令更改为

现在它可以在 shell 窗口中产生输出,但是,我找不到输出文件 'simple1.html',我尝试了以下命令:

他们都没有工作并在我指定的文件夹中生成文件。

0 投票
3 回答
2977 浏览

python - 为什么字符 ID 160 在 PDFMiner 中不被识别为 Unicode?

我正在使用PDFMiner将 .pdf 文件转换为 .xml 文件。

对于 .pdf 文件中的每个单词,PDFMiner 会检查它是否是 Unicode(以及许多其他内容)。如果是,则返回字符,如果不是,则引发异常并返回字符串“(cid:%d)”,其中 %d 是字符 id,我认为是 Unicode Decimal。

这在这个问题的编辑部分得到了很好的解释 :pdf2txt 的输出中的 this (cid:51) 是什么?. 为了方便起见,我在这里报告代码:

对于用西里尔文编写的 .pdf 文件,我通常会收到此异常。但是,有一个文件使用简单的英语,并且我在其中得到了非中断空格(具有 cid=160)的异常。我不明白为什么这个字符不被识别为 Unicode,而同一文件中的所有其他字符都是。

如果在相同的环境中,我isinstance(u'160', unicode)在我得到的控制台中运行True,而(显然)等效命令False在 PDFMiner 中运行时返回。

如果我调试,我看到字体被正确识别,即我得到:

PDFMiner 接受编解码器作为参数。我选择了 utf-8,它有 160 作为 Unicode Decimal 用于非中断空间(http://dev.networkerror.org/utf8/)。

如果它可能有帮助,这里是 to_unichr 的代码:

有没有办法设置/更改代码识别的字符映射?

你认为我应该改变什么,或者你认为我应该在哪里调查,以便 cid=160 不会引发异常?

0 投票
3 回答
5399 浏览

python - PDF Miner PDFEncryptionError

我正在尝试从 pdf 文件中提取文本,然后尝试识别参考。我正在使用 pdfminer 20140328。未加密的文件运行良好,但我现在得到了一个文件:

_initialize_password 中的文件“C:\Tools\Python27\lib\site-packages\pdfminer\pdfdocument.py”,第 348 行

raise PDFEncryptionError('未知算法:param=%r' % param)

pdfminer.pdfdocument.PDFEncryptionError: 未知算法:param={'CF': {'StdCF': {'Length': 16, 'CFM': /AESV2, 'AuthEvent': /DocOpen}}, 'O': '} \xe2>\xf1\xf6\xc6\x8f\xab\x1f"O\x9bfc\xcd\x15\xe09~2\xc9\\x87\x03\xaf\x17f>\x13\t^K\x99', '过滤器':/标准,'P':-1548,'长度':128,'R':4,'U':'Kk>\x14\xf7\xac\xe6\x97\xb35\xaby!\x04| \x18(\xbfN^Nu\x8aAd\x00NV\xff\xfa\x01\x08', 'V': 4, 'StmF': /StdCF, 'StrF': /StdCF}

我检查了 pdfinfo,这个文件似乎是 AES 加密的,但我可以毫无问题地打开它。所以我有两个问题:

  • 起初:文件怎么可能被加密但我可以在没有密码的情况下打开它?

  • 其次:我如何让 PDFMiner 正确读取该文件?我在某处阅读以安装 pycrypto 以获取其他算法,但它并没有解决我的问题。

非常感谢。