我有一個Python腳本,使用PDFminer像這樣的PDF文檔中的文本讀取結紮處理:在使用Python pdfminer
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表示。
我開始嘗試使用不同的字符編碼,以便使文本中的「!」變成正確的連字符,但我沒有成功。
也許這與我的PDF文件或PDFminer本身有關?
語言真的很棒。謝謝你這個非常有洞察力的答案!當然,作爲一名計算機科學家,它讓我內心尖叫,但作爲一個人,它讓我停下來思考兼顧unicode標準和互聯網的兼收幷蓄的文化混搭。 – lol