首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyPdf无法从我的PDF中的某些页面提取文本

pyPdf无法从我的PDF中的某些页面提取文本
EN

Stack Overflow用户
提问于 2010-11-17 18:20:49
回答 6查看 15.3K关注 0票数 6

我正在尝试使用pyPdf从多页PDF中提取和打印页面。问题是,不能从某些页面中提取文本。我在这里放了一个示例文件:

http://www.4shared.com/document/kmJF67E4/forms.html

如果运行以下命令,前81个页面不返回任何文本,而最后11个页面正确提取。有人能帮上忙吗?

代码语言:javascript
复制
from pyPdf import PdfFileReader  
input = PdfFileReader(file("forms.pdf", "rb"))  
for page in input1.pages:  
    print page.extractText()  
EN

回答 6

Stack Overflow用户

发布于 2010-11-17 19:04:11

请注意,extractText()仍然存在正确提取文本的问题。来自extractText()的文档

这对于一些PDF文件效果很好,但对其他文件效果不佳,这取决于所使用的生成器。这将在未来得到改进。不要依赖于这个函数的文本顺序,因为如果这个函数变得更复杂,它就会改变。

因为它是您想要的文本,所以可以使用Linux命令pdftotext

要使用Python调用它,您可以这样做:

代码语言:javascript
复制
>>> import subprocess
>>> subprocess.call(['pdftotext', 'forms.pdf', 'output'])

文本从forms.pdf中提取并保存到output

这适用于您的PDF文件,并提取您想要的文本。

票数 10
EN

Stack Overflow用户

发布于 2010-11-17 20:26:57

您还可以尝试使用pdfminer库(也是Python语言),看看它在提取文本方面是否更好。然而,对于拆分,你将不得不坚持使用pyPdf,因为pdfminer不支持这一点。

票数 1
EN

Stack Overflow用户

发布于 2010-11-17 21:13:29

我发现有时将其转换为ps (尝试使用pdf2pspdftops以了解潜在差异)然后再转换回pdf (ps2pdf)是很有用的。然后再次尝试您的原始脚本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4203414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档