In Python verwende ich pdfminer, um den Text aus einer PDF mit dem Code unter dieser Nachricht zu lesen. Ich bekomme jetzt eine Fehlermeldung sagend:Wie entsperren Sie ein "gesichertes" (lesegeschütztes) PDF in Python?
File "/usr/local/lib/python2.7/dist-packages/pdfminer/pdfpage.py", line 124, in get_pages
raise PDFTextExtractionNotAllowed('Text extraction is not allowed: %r' % fp)
PDFTextExtractionNotAllowed: Text extraction is not allowed: <cStringIO.StringO object at 0x7f79137a1
ab0>
Als ich dieses pdf mit Acrobat Pro öffnen es stellt sich heraus, dass es gesichert ist (oder „schreibgeschützt“). jedoch von this link, las ich, dass eine Vielzahl von Diensten gibt es die leicht diesen Leseschutz deaktivieren kann (zB pdfunlock.com. Beim Tauchen in die Quelle des pdfminer, sehe ich, dass der Fehler, der oben auf these lines erzeugt wird.
if check_extractable and not doc.is_extractable:
raise PDFTextExtractionNotAllowed('Text extraction is not allowed: %r' % fp)
Da es eine Vielzahl von Diensten gibt, die diesen Leseschutz innerhalb einer Sekunde deaktivieren können, nehme ich an, dass es wirklich einfach ist.Es scheint, dass .is_extractable
ein einfaches Attribut der doc
ist, aber ich glaube nicht, dass es so einfach ist Ändern .is_extractable
zu True ..
Weiß jemand, wie ich den Read Pro deaktivieren kann auf einem Pdf mit Python? Alle Tipps sind willkommen!
============================================== ==
Unten finden Sie den Code, mit dem ich derzeit den Text von nicht lesen geschützt extrahieren.
def getTextFromPDF(rawFile):
resourceManager = PDFResourceManager(caching=True)
outfp = StringIO()
device = TextConverter(resourceManager, outfp, codec='utf-8', laparams=LAParams(), imagewriter=None)
interpreter = PDFPageInterpreter(resourceManager, device)
fileData = StringIO()
fileData.write(rawFile)
for page in PDFPage.get_pages(fileData, set(), maxpages=0, caching=True, check_extractable=True):
interpreter.process_page(page)
fileData.close()
device.close()
result = outfp.getvalue()
outfp.close()
return result
Haben Sie versucht, .is_extractable auf True zu ändern? Es gibt tatsächlich eine vernünftige Chance, dass es funktionieren würde. – user3757614