1

我正在尝试通过 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 有什么问题,或者我正在使用的库有什么缺点吗?

4

1 回答 1

2

如果您阅读 pyPDF 文档中的注释,您会发现它写在那里,该功能不适用于某些 PDF 文件;换句话说,您正在查看库的限制。

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

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

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

于 2015-05-16T06:28:55.220 回答