pdftotext
オプション「-enc utf-8 -htmlmeta -raw」を使用して、それを出力を解析するpythonスクリプトに渡します。(pdftotext に慣れていない場合でも、関係ない可能性があるため、読み進めてください。)
私たちが処理している一部の pdf では、pdftotext は次のようなメタデータを出力しています。
<meta name="CreationDate" content="<FE><FF>">
Pythonでは、これを(基本的に)行っています:
attrib[name] = content.decode('utf-8')
上記のメタデータの文字列はどこにcontent
ありますか。<FE><FF>
Python は例外を発生させます。
UnicodeDecodeError: 'utf8' codec can't decode byte 0xfe in position 0: unexpected code byte
この時点で、問題が PDF 自体にあるのか、pdftotext からの出力なのか、Python の utf-8 の解釈方法にあるのかはわかりません。
私はグーグルで検索しましたが、決定的なものは何も見つかりませんでした。
基本的に、有効な utf-8のみを出力することを期待pdftotext -enc utf-8
します。そして、デコード時にそのutf-8を処理する方法をPythonが理解することを期待しています。私が見逃している部分はありますか?
なぜこれが起こっているのかを理解し、解決策を教えていただければ幸いです。
ありがとう!