问题标签 [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.
python - 在 python 中使用 pdfminer 处理连字
我有一个 Python 脚本,它使用 PDFminer 从 pdf 文档中读取文本,如下所示:
这似乎很有效,因为在打印此字符串 str 时会显示文本。然而,仔细检查后,在查看生成的文本时,有许多双字符(即“ff”、“fi”、“fl”和“ff”)会变成“!”。
经过一些研究,我发现这些字符都有“连字”,这意味着它们可以替换为两个字符的连接版本。
这些连字显然无法在 ASCII 中找到,但我发现它们能够通过 unicode 表示。
我开始尝试不同的字符编码,以使文本中的“!”变成正确的连字,但我没有成功。
也许这与我的 PDF 文件或 PDFminer 本身有关?
python - 将 CID 字体代码解码为等效的 ASCII 字符
我正在尝试从一堆 PDF 中挖掘一些文本,其中一些在输出中嵌入了CID 字体:
当我查看 PDF 中的确切文本片段时,这些字母肯定可以转换为 ASCII:
这可能表明蛮力解码会起作用(即读取与一堆 CID 代码相对应的文本片段并以这种方式创建映射),但这在许多不同的 PDF 中是否可靠?是否存在从这些 CID 代码到 ASCII 字符的可靠映射,或者是否高度依赖于 PDF 中的字体?如何确定 CID 代码(cid:72)
对应的 ASCII 字符?
对于它的价值,我正在使用 PDFminer 提取文本,这似乎是唯一实际报告 CID 代码的工具。如果有更好的工具可以将 PDF 转换为 HTML 或任何其他可解析的文本格式,我愿意接受其他建议!
作为额外的奖励,这个问题似乎与其他一些未回答的问题有关,因此这里有丰富的声誉:
python - 在 Python 中由 PDFminer 转换为 TXT 的 PDF 上使用斯坦福 NER 时出错?
免责声明:我对 Python 和一般编程相当陌生。这个问题有几个不同的组成部分 - 对其中任何一个或全部的答案将非常有帮助。
我正在尝试用 Python 编写一个程序来从外援文件中提取位置名称。
这些文档通常是 PDF 文件,所以最初我使用 Adobe Reader 将它们从 PDF 转换为 TXT。但是我想将该过程集成到我的程序中,因此我安装了 PDFMiner 并一直在测试之前的堆栈溢出问题(如何使用 pdfminer 作为库)中的代码来转换它们。这是我目前正在使用的代码:
当我打印输出时,它看起来与 Adobe Reader 在 shell 中创建的文本相同,但斯坦福 NER 标记器没有找到任何实体。我正在使用 pyner ( https://github.com/dat/pyner ) 来实现斯坦福 NER,它只是为每个句子返回空字典。套接字不是问题,它以前在 Adobe 转换的文件上工作过。这是我实现斯坦福 NER 的代码:
在终端中,当代码运行时,这个错误被相当频繁地抛出(并且偶尔与 Adobe 转换的文件一起抛出):
为什么会发生这种情况,我该如何解决?
这是我一直在使用的示例文档以供参考:http ://www-wds.worldbank.org/external/default/WDSContentServer/WDSP/IB/2009/02/03/000350881_20090203110828/Rendered/PDF/432750PJPR0BR010P1028180Box0334125B.pdf
旁注:如您所见,并非所有内容都是句子格式,因此理想情况下,将来我的文本挖掘程序也能够识别表格等。但我是新手,非常不知道如何实现它,所以我想先掌握这个基本的命名实体识别器。但是,如果您有任何建议,我非常愿意接受所有我能得到的帮助。
提前非常感谢!
python - 如何使用 PDFMiner 获取 PDF 中文本的位置?
PDFMiner 的文档说:
PDFMiner 允许获取页面中文本的确切位置
但是,我无法找到如何做到这一点。PDFMiner 的“文档”相当稀疏,所以我不明白如何做到这一点。
python-2.7 - 尽管我强制编码,NLTK 的 word_tokenize 中出现 UnicodeDecodeError
我首先将 pdf 转换为纯文本(我将其打印出来,一切都很好),然后当我尝试从 NLTK 运行 word_tokenize() 时出现 UnicodeDecodeError。
尽管我事先尝试在纯文本上 decode('utf-8').encode('utf-8') ,但我还是收到了这个错误。在回溯中,我注意到 word_tokenize() 中首先引发错误的代码行是 plaintext.split('\n')。这就是为什么我试图通过在纯文本上运行 split('\n') 来重现该错误,但仍然不会产生任何错误。
所以,我既不了解导致错误的原因,也不了解如何避免它。
任何帮助将不胜感激!:) 也许我可以通过更改 pdf_to_txt 文件中的某些内容来避免它?
这是标记化的代码:
这是我为了从pdf转换为txt而调用的方法:
这是我得到的错误的回溯:
感谢一百万和大量的好业力给你!;)
python - pdfminer3k 在 PDFPage 中没有名为 create_pages 的方法
由于我想从 python 2 迁移到 3,我尝试在 python 3.4 中使用 pdfmine.3kr。似乎他们已经编辑了所有内容。他们的更改日志没有反映他们所做的更改,但我在使用 pdfminer3k 解析 pdf 时没有成功。例如:
他们已将 PDFDocument 移至 pdfparser (对不起,如果我拼写错误)。PDFPage 曾经有 create_pages 方法,现在已经不存在了。我在 PDFPage 中看到的只是内部方法。有人有 pdfminer3k 的工作示例吗?似乎没有新的文档来反映任何更改。
python - 在python中使用PDFMiner从PDF文件中提取文本?
我正在寻找有关如何使用 PDFMiner 和 Python 从 PDF 文件中提取文本的文档或示例。
看起来 PDFMiner 更新了他们的 API,我发现的所有相关示例都包含过时的代码(类和方法已更改)。我发现使从 PDF 文件中提取文本的任务更容易的库正在使用旧的 PDFMiner 语法,所以我不确定如何执行此操作。
事实上,我只是在查看源代码,看看我是否能弄清楚。
python - How to convert mongodb document to binary in Python?
I'm trying to convert this python command line utility so that I can use the code as a module in my existing program and so that I can feed it a pdf which is stored in MongoDB using MongoEngine.
Currently it takes a filename as a string and gets the file using the following code:
Since I want to put in a document from my mongoDB, I changed the argument of the function to main(fp)
and did the following from the interactive python interpreter:
Since fp
is initially created using the 'rb'
flag I suppose I need to create fp
in binary mode from mongoengine, but I wouldn't know how to convert the GridFS-results from my FileField into binary mode.
Does anybody have a tip on how I could convert GridFS results into binary so that it is the same as when I retreive it using file(fname, 'rb')
? All tips are welcome!
python - 如何让这个 Python 方法返回一个字符串而不是将其写入标准输出?
我正在尝试使用 Python 从 pdf 中提取文本。为此,我使用pdf2txt.py 命令行工具找到了 pdfminer,它做得相当好,如下所示:
因为我想在我的程序中使用这个功能,所以我想把它用作一个模块而不是一个命令行工具。所以我设法将 pdf2txt.py 文件调整为以下内容:
我现在可以将其称为模块,如下所示:
它目前使用 打印出结果字符串,但我实际上希望它使用代码最后一行的语句sys.stdout.write()
返回这些字符串。return
但由于 sys.stdout.write 的使用隐藏在 converter.py 的第 165-167 行深处,我真的不知道如何让这个方法返回这些字符串而不是将其写入标准输出。
有谁知道我怎样才能让这个方法返回找到的字符串而不是将它们写入标准输出?欢迎所有提示!
python - 使用 pdfminer 水平读取 pdf 文件
我想用pdfminer
(版本 20140328)提取 pdf。
这是提取pdf的代码:
这是pdf的截图:
问题是pdfminer
它不是水平读取(人然后位置)而是在列中(所有人然后他们各自的位置):
如何使pdfminer
文本水平阅读?