【发布时间】:2020-07-01 01:20:49
【问题描述】:
我很难将字节从 PDF 转换为字符串。当我运行代码时,它说它转换为类str,但是当我尝试打印它时,我得到了这个错误:
UnicodeEncodeError: 'charmap' codec can't encode character '\uf0b7' in position 432: character maps to <undefined>
我已经尝试了十几个设置的“解码”功能,在 unicode 转换格式之后没有“忽略”或“反斜杠”就无法工作。
我希望能够打印和使用该字符串,但最终我想计算 PDF 中关键字的出现次数。有没有更好的方法来做到这一点而不涉及转换为字符串?
def pdf_to_text(path):
manager = PDFResourceManager()
retstr = BytesIO()
layout = LAParams(all_texts=True)
device = TextConverter(manager, retstr, laparams=layout)
filepath = open(path, 'rb')
interpreter = PDFPageInterpreter(manager, device)
for page in PDFPage.get_pages(filepath, check_extractable=True):
interpreter.process_page(page)
text = retstr.getvalue().lower()
filepath.close()
device.close()
retstr.close()
text_str = text.decode('utf-8', 'ignore')
print(type(text_str))
print(text_str)
return text
【问题讨论】: