2015-12-18 6 views
5

Ich versuche, Text aus PDF-Dateien zu extrahieren und später versuchen, die Referenzen zu identifizieren. Ich verwende pdfminer 20140328. Mit unverschlüsselte Dateien seinen gut läuft, aber ich habe jetzt eine Datei, wo ich bekommen:PDF Miner PDFEncryptionError

File "C:\Tools\Python27\lib\site-packages\pdfminer\pdfdocument.py", line 348, in _initialize_password

raise PDFEncryptionError('Unknown algorithm: param=%r' % param)

pdfminer.pdfdocument.PDFEncryptionError: Unknown algorithm: param={'CF': {'StdCF': {'Length': 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}

ich mit pdfinfo geprüft, dass diese Datei schien AES verschlüsselt zu werden, aber ich kann es öffnen ohne Probleme. So habe ich zwei Fragen:

  • zunächst: wie es möglich ist, dass ein Dokument verschlüsselt ist, aber ich kann es ohne Passwort öffnen?

  • und zweitens: Wie mache ich PDFMiner diese Datei richtig lesen? Irgendwo habe ich gelesen, um pycrypto zu installieren, um zusätzliche Algorithmen zu bekommen, aber das behebt mein Problem nicht.

Vielen Dank.

Antwort

8

Ich hatte das gleiche Problem mit einigen Dokumenten. Es sieht so aus, als wäre das Dokument verschlüsselt, aber das Passwort ist leer. Deshalb können wir es ohne Passwort leicht öffnen.

Ich endete das Problem mit Ubuntu qpdf Dienstprogramm zu beheben. Es kann die Datei entschlüsseln, wenn Sie ein Passwort angeben (in meinem Fall leer). Ich implementierte einen Shell-Befehl in Python-Skript, das das Dokument mit einem leeren Passwort entschlüsseln würde:

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

wo

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

pdfminer sollte nun den Text extrahieren.

-3

Es gibt ein Windows-PDF-Programm PDFill (www.pdfill.com). Ich habe die kostenlose Tools-Version des Programms verwendet, um das Gleiche zu tun - einfach alle Seiten des Dokuments teilen und das Ergebnis speichern. Die gespeicherte Datei kann dann von pdfminer gelesen werden.