pdfファイルのいくつかの一般的なプロパティを抽出したいと思います。これまでのところ、これは非常にうまくいっています。ただし、新しい入力ファイルを試してみると、私は今、奇妙な新しいエラーに遭遇しました。デコード "x9f x00ä x00? x00_ x00ë"などPython 3の文字列
解析のために、私はpdfminer.sixを使用しています。 、
今pdf_data = {
'Number of words': len(words),
'Number of paragraphs': len(paragraphs),
'Number of pages': len(pages)
}
if len(doc.info) > 0:
pdf_data_keys = ["latin", "windows-1252"]
for key in pdf_data_keys:
properValue = ""
value = doc.info[0].get(key)
if value is not None:
for enc in encodings:
try:
properValue = value.decode(encoding=enc)
break
except Exception as ex:
continue
if properValue != "":
pdf_data[key] = properValue
コードを実行した後、私はすべてのエラーを得ることはありませんが、これは新しいファイルにタイトルアップを示しています。これは、など、タイトル、作成者、件名を抽出するコードは次のようになります:
encodings = ['ascii', 'big5', 'big5hkscs', 'cp037', 'cp273', 'cp424', 'cp437', 'cp500', 'cp720', 'cp737',
'cp775', 'cp850', 'cp852', 'cp855', 'cp856', 'cp857', 'cp858', 'cp860', 'cp861', 'cp862', 'cp863',
'cp864', 'cp865', 'cp866', 'cp869', 'cp874', 'cp875', 'cp932', 'cp949', 'cp950', 'cp1006',
'cp1026', 'cp1125', 'cp1140', 'cp1250', 'cp1251', 'cp1252', 'cp1253', 'cp1254', 'cp1255',
'cp1256', 'cp1257', 'cp1258', 'cp65001', 'euc_jp', 'euc_jis_2004', 'euc_jisx0213', 'euc_kr',
'gb2312', 'gbk', 'gb18030', 'hz', 'iso2022_jp', 'iso2022_jp_1', 'iso2022_jp_2', 'iso2022_jp_2004',
'iso2022_jp_3', 'iso2022_jp_ext', 'iso2022_kr', 'latin_1', 'iso8859_2', 'iso8859_3', 'iso8859_4',
'iso8859_5', 'iso8859_6', 'iso8859_7', 'iso8859_8', 'iso8859_9', 'iso8859_10', 'iso8859_11',
'iso8859_13', 'iso8859_14', 'iso8859_15', 'iso8859_16', 'johab', 'koi8_r', 'koi8_t', 'koi8_u',
'kz1048', 'mac_cyrillic', 'mac_greek', 'mac_iceland', 'mac_latin2', 'mac_roman', 'mac_turkish',
'ptcp154', 'shift_jis', 'shift_jis_2004', 'shift_jisx0213', 'utf_32', 'utf_32_be', 'utf_32_le',
'utf_16', 'utf_16_be', 'utf_16_le', 'utf_7', 'utf_8', 'utf_8_sig', "idna", "mbcs", "oem", "palmos",
"punycode", "raw_unicode_escape", "rot_13", "undefined", "unicode_escape", "unicode_internal",
"base64_codec", "bz2_codec", "hex_codec", "quopri_codec", "string_escape", "uu_codec",
"zlib_codec"]
しかし、これはどちらか助けていません:
'Title': 'Ú\x9f\x00ä\x00?\x00_\x00ë\x00È\x00/\x00Å\x00Á\x00\x80\x00(\x00ë\x00ä\x00ñ\x00\x80\x00ï\x00?\x00Ê\x00%\x00À\x00\x80\x00è\x00ê\x00+\x00\x80\x00í\x00ä\x00ñ\x00è\x00ë\x00\x80\x00á\x00è\x00ã\x00\x80\[email protected]\x00\x80\x00á\x00è\x00ã\x00\x91\x00\x91\x00\x90\x00\x80\[email protected]\x00\x80\x00<\x00í\x00\x90\x00\x93\x00\x99\x00\x16\x00\x94\x00\x99\x00\x94\x00\x95\x00\x96\x00\x16\x00\x80\[email protected]\x00\x80\x00ü\x00Â\x00Á\x00Ê\x00Ë\x00Ñ\x00Ä\x00Ç\x00È\x00\x80\[email protected]\x00\x80\x00Â\x00?\x00Á\x00Ê\x00Ë\x00Á\x00\x05\x00Ë\x00È\x00Í\x00È\x00È\x00Å\x00/\x00Ê\x00È\x00\x06\x00À\x00Á'}
私はこれにそこまでの短いリストを変換し、存在してエンコーディングの他のすべてのタイプに入れて試してみました。
私はPythonに関しては絶対に初心者です。私は本当にこの点について助けていただきたいと思います。
素晴らしい一日を!
お世話になります。ありがとうございました。あなたがそこに見ることができるように、すべてのタイプのUTFエンコーディングをループに含めました。悲しいことに、それは問題を解決しませんでした: – Lena