我正试图通过url读取一个pdf。我遵循了许多堆栈溢出建议,并使用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有什么问题,或者我使用的库有什么缺点?
发布于 2015-05-16 06:28:55
如果您阅读了pyPDF文档中的注释,您就会发现这个功能在某些PDF文件中不能很好地工作;换句话说,您正在查看库的限制。
看看这两个PDF文件,我看不出这些文件本身有什么问题。但是..。
第一个文件包含完全嵌入的字体,第二个文件包含子设置的字体。
这意味着第二个文件更难从其中提取文本,而且库可能不支持这一点。作为参考,我使用callas pdfToolbox (警告,我加入了这个工具)进行了文本提取,该工具使用Acrobat文本提取,并正确地提取了两个文件的文本(确认问题不是PDF文件)。
https://stackoverflow.com/questions/30272269
复制相似问题