我正在使用PyPDF2从pdf提取文本。我在Google中找到的所有示例都与我的代码类似:
import PyPDF2
pl = open('test2.pdf', 'rb')
plread = PyPDF2.PdfFileReader(pl)
getpage1 = plread.getPage(0)
text1 = getpage1.extractText()
print(text1.encode('utf-8'))
但是,我的控制台中有空文本:
b''
我已针对不同的pdf测试过此代码,并且所有pdf均为空
UPD:
# getDocumentInfo
{'/Producer': 'Skia/PDF m75'}
文件pdf
答案 0 :(得分:0)
似乎某些字体/文本组合使PyPDF2,PyPDF3或PyPDF4无法读取文本。
要从这些PDF中提取文本,可以使用专用的PDF文本提取包pdfminer.six。
from pdfminer import high_level
local_pdf_filename = "/path/to/pdf/you_want_to_extract_text_from.pdf"
pages = [0] # just the first page
extracted_text = high_level.extract_text(local_pdf_filename, "", pages)
print(extracted_text)
它适用于所有对我而言失败的pdf,并且可以非常快速地实现为备用。完整的docs for the extract_text功能是here。