10

PDFファイルからテキストを抽出しようとしていて、後で参照を特定しようとしています。私はpdfminer 20140328を使用しています。暗号化されていないファイルではうまく動作しますが、次のファイルを取得しました:

ファイル「C:\Tools\Python27\lib\site-packages\pdfminer\pdfdocument.py」、348 行目、_initialize_password

raise PDFEncryptionError('不明なアルゴリズム: param=%r' % param)

pdfminer.pdfdocument.PDFEncryptionError: 不明なアルゴリズム: param={'CF': {'StdCF': {'長さ': 16、'CFM': /AESV2、'AuthEvent': /DocOpen}}、'O': '} \xe2>\xf1\xf6\xc6\x8f\xab\x1f"O\x9bfc\xcd\x15\xe09~2\xc9\\x87\x03\xaf\x17f>\x13\t^K\x99', ' Filter': /Standard, 'P': -1548, 'Length': 128, 'R': 4, 'U': 'Kk>\x14\xf7\xac\xe6\x97\xb35\xaby!\x04| \x18(\xbfN^Nu\x8aAd\x00NV\xff\xfa\x01\x08', 'V': 4, 'StmF': /StdCF, 'StrF': /StdCF}

pdfinfo で確認したところ、このファイルは AES 暗号化されているようですが、問題なく開くことができます。だから私は2つの質問があります:

  • 最初に: ドキュメントが暗号化されているのに、パスワードなしで開くことができるのはどうしてですか?

  • 第二に、PDFMinerにそのファイルを適切に読み取らせるにはどうすればよいですか? どこかでpycryptoをインストールして追加のアルゴリズムを取得することを読みましたが、問題は解決しませんでした。

どうもありがとう。

4

3 に答える 3

18

一部のドキュメントで同じ問題が発生しました。ドキュメントは暗号化されているようですが、パスワードが空白です。そのため、パスワードなしで簡単に開くことができます。

Ubuntuのqpdfユーティリティで問題を修正しました。パスワードを指定すると、ファイルを復号化できます(私の場合は空白です)。空のパスワードでドキュメントを復号化するシェル コマンドを Python スクリプトに実装しました。

from subprocess import call
call('qpdf --password=%s --decrypt %s %s' %('', pdf_filename, pdf_filename_decr), shell=True)

どこ

`pdf_filename` - filename of encrypted pdf,
`pdf_filename_decr` - filename of a new decrypted copy.

pdfminerは今すぐテキストを抽出する必要があります。

于 2016-02-22T18:35:22.007 に答える