Extrahieren Sie Bilder aus PDF mit Python PyPDF2

9

Gibt es eine Möglichkeit, Bilder aus dem PDF-Dokument als Stream zu extrahieren (mithilfe der PyPDF2 -Bibliothek)? Ist es auch möglich, einige Bilder durch ein anderes zu ersetzen (zum Beispiel mit PIL erzeugt oder aus Datei geladen)?

Ich bin in der Lage, CodedStreamObject aus der PDF-Baumstruktur zu bekommen und codierten Stream zu erhalten (durch Aufruf der getData () -Methode), sieht aber aus wie roher Inhalt ohne irgendwelche Bildköpfe und andere Metainformationen.

%Vor%

Ich habe PyPDF2 , angeschaut ReportLab und PDFMiner Lösungen ziemlich viel, aber ich habe nichts gefunden, wonach ich suche.

Alle Codebeispiele und Links sind sehr hilfreich.

    
Maxim Kamenkov 02.12.2013, 11:54
quelle

1 Antwort

0

Bild-Metadaten werden nicht in den codierten Bildern einer PDF gespeichert. Wenn Metadaten überhaupt gespeichert werden, werden sie im PDF selbst gespeichert, jedoch vom zugrunde liegenden Bild entfernt. Die Metadaten, die Sie in Ihrem Beispiel sehen, sind wahrscheinlich alles, was Sie bekommen können. Es ist möglich, dass PDF-Encoder Bildmetadaten an anderer Stelle in der PDF-Datei speichern, aber das habe ich nicht gesehen. (Beachten Sie diese Metadatenfrage wurde auch nach Java gefragt .)

Es ist definitiv möglich, den Stream zu extrahieren. Wie Sie bereits erwähnt haben, verwenden Sie die Operation getData .

Um es zu ersetzen, müssen Sie ein neues Bildobjekt mit der PDF-Datei erstellen, es am Ende hinzufügen und die indirekten Objektzeiger entsprechend aktualisieren. Dies wird mit PyPdf2 schwierig werden.

    
speedplane 13.10.2017 00:44
quelle