2

次のように、PDFminer を使用して PDF ドキュメントからテキストを読み取る Python スクリプトがあります。

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」) がいくつかあります。

調査の結果、これらの文字にはすべて「合字」があり、2 つの文字を結合したバージョンに置き換えることができることがわかりました。

これらの合字は明らかに ASCII では見つかりませんが、Unicode で表現できることがわかりました。

テキスト内の「!」を正しい合字に変換するために、さまざまな文字エンコーディングを試してみましたが、うまくいきませんでした。

おそらく、これは私の PDF ファイルまたは PDFminer 自体に関係していますか?

4

1 に答える 1