Wie kann man ein "gesichertes" (lesegeschütztes) PDF in Python freischalten?

9

In Python verwende ich pdfminer , um den Text aus einem PDF mit dem Code unter dieser Nachricht zu lesen. Ich bekomme jetzt eine Fehlermeldung, die sagt:

%Vor%

Wenn ich dieses PDF mit Acrobat Pro öffne, stellt es sich heraus, dass es gesichert (oder "lesegeschützt" ist). Von diesem Link habe ich jedoch gelesen, dass es eine Vielzahl von Diensten gibt, die diesen Leseschutz deaktivieren können leicht (zum Beispiel pdfunlock.com . Beim Eintauchen in die Quelle von pdfminer sehe ich, dass der obige Fehler auf diese Zeilen .

%Vor%

Da es eine Vielzahl von Diensten gibt, die diesen Leseschutz innerhalb einer Sekunde deaktivieren können, nehme ich an, dass dies sehr einfach ist. Es scheint, dass .is_extractable ein einfaches Attribut von doc ist, aber ich denke nicht, dass es so einfach ist, .is_extractable zu True zu ändern.

Weiß jemand, wie ich den Leseschutz auf einem Pdf mit Python deaktivieren kann? Alle Tipps sind willkommen!

================================================ =

Nachfolgend finden Sie den Code, mit dem ich derzeit den Text aus nicht gelesenen geschützten extrahieren.

%Vor%     
kramer65 28.01.2015, 13:02
quelle

2 Antworten

11

Soweit ich weiß, wird in den meisten Fällen der gesamte Inhalt der PDF-Datei tatsächlich verschlüsselt, wobei das Passwort als Verschlüsselungsschlüssel verwendet wird. Daher ist es einfach, .is_extractable auf True zu setzen.

Pro Thema:

Gibt es eine Bibliothek zum Entfernen von Passwörtern aus PDFs? programmgesteuert?

Ich würde empfehlen, den Lese-Schutz mit einem Kommandozeilen-Tool wie qpdf zu entfernen (leicht installierbar, zB auf Ubuntu benutze apt-get install qpdf , falls du es noch nicht hast):

%Vor%

Öffnen Sie dann die entsperrte Datei mit pdfminer und machen Sie Ihre Sachen.

Bei einer reinen Python-Lösung können Sie versuchen, PyPDF2 und seine .decrypt() -Methode zu verwenden, aber es funktioniert nicht mit allen Arten von Verschlüsselung. Sie verwenden also besser qpdf - siehe:

Ссылка

    
Jaza 17.09.2015 00:07
quelle
1

In meinem Fall gab es kein Passwort, sondern einfach die check_extractable=False Umgehung der PDFTextExtractionNotAllowed Ausnahme für eine problematische Datei (die sich in anderen Betrachtern gut öffnete).

    
jtlz2 19.07.2017 06:07
quelle

Tags und Links