我努力将字节从PDF转换为字符串。当我运行代码时,它说它转换为类str
,但是当我尝试打印它时,出现此错误:
UnicodeEncodeError: 'charmap' codec can't encode character '\uf0b7' in position 432: character maps to <undefined>
我已经尝试了12种设置的“ decode”函数,如果在unicode转换格式后没有“ ignore”或“ reversebackslash”,它就无法工作。
我希望能够打印和使用字符串,但最终,我想计算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
我在Google上将其保存,并且我有资金认为此'\ uf0b7'字符是printatl字符。我相信您可以不使用此字符而从PDF打印文本,因为它是PDF协议的一部分。因此,如果您删除此字符,它可能会对您有所帮助。试试这个网站:Removing all invalid characters (e.g. \uf0b7) from text