我有一个Python脚本,它使用PDFminer读取pdf文档中的文本,如下所示:def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
file_pointer = file(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos=set()
for page in PDFPage.get_pages(file_pointer, pagenos, maxpages=maxpages, password=password, caching=caching, check_extractable=True):
interpreter.process_page(page)
file_pointer.close()
device.close()
str = retstr.getvalue()
retstr.close()
return str
当打印这个字符串str时,它的效果似乎很好。然而,仔细观察会发现有许多字符双精度(即“ff”、“fi”、“fl”和“ff”)会变成“!”当浏览生成的文本时。在
经过一些研究,我发现这些字符都有“连字”,这意味着它们可以替换为两个字符的联合版本。在
这些连字显然在ASCII中找不到,但我发现它们可以通过unicode来表示。在
我开始尝试不同的字符编码,以使“!”在我的文本中,s变成了正确的连字,但我没有成功。在
也许这和我的PDF文件或者PDFminer本身有关?在