Python文本提取不适用于某些pdf文件



我试图通过url阅读pdf。我遵循了许多stackoverflow建议,并使用PyPdf2 FileReader从pdf中提取文本。我的代码是这样的:

url = "http://kat.kar.nic.in:8080/uploadedFiles/C_13052015_ch1_l1.pdf"
#url = "http://kat.kar.nic.in:8080/uploadedFiles/C_06052015_ch1_l1.pdf"
f = urlopen(Request(url)).read()
fileInput = StringIO(f)
pdf = PyPDF2.PdfFileReader(fileInput)
print pdf.getNumPages()
print pdf.getDocumentInfo()
print pdf.getPage(1).extractText()

我能够成功地提取第一个链接的文本。但是如果我对第二个pdf使用相同的程序。我没有收到任何短信。页码和文档信息似乎显示出来了。

我尝试通过终端从Pdfminer提取文本,并能够从第二个pdf提取文本。

知道pdf有什么问题吗?或者我使用的库有什么缺点吗?

如果你读了pyPDF文档中的注释,你会发现它写在那里,这个功能将不能很好地工作在一些PDF文件;换句话说,您正在查看库的限制。

看这两个PDF文件,我看不出文件本身有什么问题。但是…

第一个文件包含完全嵌入的字体第二个文件包含子集字体

这意味着第二个文件更难从中提取文本,库可能不支持。仅供参考,我使用callas pdfToolbox进行了文本提取(注意,我隶属于此工具),该工具使用Acrobat文本提取,并为两个文件正确提取文本(确认这不是问题的PDF文件)。

最新更新