Ersetzen Sie ein Bild in einer PDF-Datei über die Befehlszeile

11

Ich muss einige PDF-Dateien verarbeiten. Die Aufgabe besteht darin, eine bestimmte Bilddatei durch eine andere auszutauschen. Mein erstes Problem ist, wie man ein PDF-Bild über die Befehlszeile in einem Stapelprozess ersetzt. Als nächstes werde ich versuchen, andere Probleme zu lösen, z. B. zu ermitteln, welches Bild ersetzt werden muss (da die PDF-Dateien möglicherweise mehr als ein Bild enthalten). Aber zuerst möchte ich das erste Problem lösen: wie man ein Bild in einer PDF durch ein anderes ersetzt.

Ich habe über poppler-utils und pdftk gelesen, aber meines Wissens erlaubt keines dieser Tools das Ersetzen von Bildern in PDF.

Ivan
quelle
1
Wenn Sie eine Antwort finden, ist es wirklich interessant zu wissen. Das „Problem Seite“ Nach Isolierung, könnten Sie ImageMagick verwenden , um ein Bild in ein anderes einfügen und es dann in PDF konvertieren zurück: imagemagick.org/Usage/layers auch: superuser.com/questions/614784/...
Konstantinos
Dank @pidosaurus habe ich diese Optionen in Betracht gezogen, aber es gibt ein großes Problem: Es bedeutet, dass das PDF (oder die Signaturseite) in Bilder konvertiert werden muss. Dies ist ein Problem, da die resultierende PDF-Datei viel größer ist und der Benutzer beispielsweise keinen Text zum Kopieren und Einfügen auswählen kann.
Ivan
Lookup-Konvertierung von Imagemagick und vor allem die Tools, die ooconv von openoffice (jetzt tatsächlich libreoffice) bietet - ich habe einmal jemanden beauftragt, einen PPT-zu-PDF-Konverter zu schreiben, und diese Tools wurden verwendet.
Mathe
Keines der mir bekannten PDF-Tools kann das, aber es wäre nicht sehr schwierig, ein neues Tool mit einer PDF-Bibliothek mit dieser Funktionalität zu schreiben. Ein Problem, das Sie lösen müssen, besteht darin, ein bestimmtes Bild in einer PDF-Datei anzugeben .
Dirkt

Antworten:

1

OK ... ich denke pdflatexist das fehlende Stück hier.

Das OP sagte, er habe in poppler-utilsund untersucht pdftk. Lassen Sie mich noch etwas hinzufügen pdfimages. Dies sind zusammen mit pdflatexden Teilen einer Lösung.

pdfimages -f 4 -l 20 -j -png target.pdf imageroot

Im obigen Beispielcode werden die pdfimages Seiten 4 bis 20 von target.pdfdurchsucht und alle Bilder in Dateien mit beginnenden Namen extrahiert imageroot.

poppler-utilsbietet pdftotext. Ich empfehle die -layoutOption, mit der das Dokument gut lesbar bleibt.

pdftotext -layout $1.pdf $1.txt

Der Einwand des OP gegen die imagemagickvon Pidosaurus angebotene Lösung besteht darin, dass ein Bild keinen extrahierbaren Text enthält. Mit den von mir beschriebenen Dienstprogrammen verfügt das OP nun über alle Bilder sowie den gesamten extrahierten Text, und Seitenzahlen und Inhalte bleiben bei der -layoutOption erhalten. Das OP könnte die richtige Textseite identifizieren und in eine .texDatei einfügen, die mit einer %includegraphicsAnweisung endet und auf das Ersatzbild mit dem Dateinamen verweist. Sie erhalten dann pdflatexdiese und erhalten eine neue einseitige PDF-Datei, die Sie in den Rest Ihres Dokuments einfügen können pdftk. Wenn Sie wissen, wo %includegraphics [h]sich das Bild im Text der Originalseite befindet, können Sie das Bild genau an der richtigen Stelle platzieren.

Richard Sonnenfeld
quelle