Mit Ghostscript mehrseitige PDFs in einzelne JPG-Dateien konvertieren?

19996
Andrew

Ich weiß, Ghostscript kann PDFs in JPGs konvertieren, und im Falle einer mehrseitigen PDF-Datei kann jede Seite in eine einzelne JPG-Datei kopiert werden. Aber ist es möglich, sie in ein JPG-Dokument zu zerlegen, so dass die Seiten untereinander eingefügt werden, z. B. die obere Hälfte des JPGs ist Seite 1, die untere Hälfte ist Seite 2? Oder muss ich ein anderes Programm verwenden (und kann ImageMagick das?), Um die JPG-Seiten in einem Bild zusammenzufassen?

13

2 Antworten auf die Frage

15
Kurt Pfeifle

Ja, Sie müssen jede PDF-Seite in eine einzelne JPG-Datei konvertieren (Ghostscript kann das).

Stechen Sie dann die resultierenden JPG-Dateien mit einem anderen Programm zusammen ( ImageMagick oder GraphicsMagic können dies mit ihren montageUnterbefehlen).

Mir ist keine Software bekannt, die dies auf einmal tun kann.

PDF-zu-JPG-Konvertierung (mit Ghostscript): Sie möchten sicherstellen, dass Sie das bestmögliche Ergebnis erzielen. Stellen Sie also sicher, dass Sie die Befehlszeilenoptionen optimieren, damit sie für Sie funktionieren. Ich fange damit an:

gswin32c.exe ^ -dBATCH ^ -dNOPAUSE ^ -dSAFER ^ -sDEVICE=jpeg ^ -dJPEGQ=95 ^ -r600x600 ^ -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^ c:/path/to/pdffile.pdf 

Dadurch werden JPGs mit den Namen pdffile-001.jpeg, pdffile-002.jpg usw. erstellt. Der Parameter * -dJPEGQ = 95 "setzt" JPEG Quality "auf 95%. Er verwendet eine Auflösung von" 600x600 dpi ". Möglicherweise müssen Sie zusätzlich Steuern Sie die Seitengröße der resultierenden JPGs für den Fall, dass der Standard von Ghostscript nicht Ihren Anforderungen entspricht:

gswin32c.exe ^ -dBATCH ^ -dNOPAUSE ^ -dSAFER ^ -sDEVICE=jpeg ^ -dJPEGQ=95 ^ -r600x600 ^ -dPDFFitPage ^ -dFIXEDMEDIA ^ -dDEVICEWIDTHPOINTS=800 ^ -dDEVICEHEIGHTPOINTS=600 ^ -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^ c:/path/to/pdffile.pdf 

oder

gswin32c.exe ^ -dBATCH ^ -dNOPAUSE ^ -dSAFER ^ -sDEVICE=jpeg ^ -dJPEGQ=95 ^ -r600x600 ^ -dPDFFitPage ^ -dFIXEDMEDIA ^ -sDEFAULTPAPERSIZE=a4 ^ -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^ c:/path/to/pdffile.pdf 

Multiple-to-Single-JPG-Stitching mit montage(ImageMagick oder GraphicsMagick): Mit demmontageBefehl (in diesem Beispiel ImageMagick verwendet) können Sie das Kachelmuster steuern. Wenn Sie zB verwenden, erhalten-tile 4x3Sie dieses Ausschieß-Layout:

1 2 3 4  5 6 7 8  9 10 11 12  

Mit diesem Befehl können Sie 12 einzelne JPGs zu einem zusammenfügen:

montage ^ -border 0 ^ -tile 4x3 ^ c:/path/to/jpeg-dir/pdffile-*.jpeg ^ c:/path/to/final.jpg 

Natürlich montagegibt es viele Dutzend zusätzlicher Parameter, mit denen Sie Hintergrund, Abstand, Versatz, Dekoration, Beschriftungen, Drehung, Beschneiden, Beschriftung usw. für die Eingabe und das resultierende JPG bestimmen können.


BEARBEITEN: (Ich wollte diesen Hinweis bereits in meiner ursprünglichen Antwort geben, habe es aber vergessen.)montageStandardmäßig werden Kachelgrößen von 120 x 120 Pixel verwendet. Wenn Sie die ursprünglichen Seitengrößen für jede Kachel-geometrybeibehaltenmöchten, müssen Sie sie zurBefehlszeilehinzufügen. Angenommen, Sie hatten A4- Seiten (= 595 x 852 pt) in Ihrem PDF-Dokument, und Sie möchten dies beibehalten, aber zusätzlich einen Abstand von 11pt zur Horizontalen und 22 pt zur vertikalen Richtung der Kacheln hinzufügen (plus 4pt starke graue Rand- / Rahmenlinien) um jede Fliese):

montage ^ -border 4 ^ -tile 4x3 ^ -geometry 595x842+11+22 ^ c:/path/to/jpeg-dir/pdffile-*.jpeg ^ c:/path/to/final.jpg 

BEARBEITEN 2: (Noch ein wichtiger Hinweis verpasst.) Wenn Sie die gute Bildqualität während des Stitching- / Montage-Prozesses, den Ihre PDF-in-JPG-Konvertierung erstellt hatte, nicht verlieren möchten, fügen Sie den-quality 100Parameter so in die Befehlszeile ein :

montage ^ -border 4 ^ -tile 4x3 ^ -geometry 595x842+11+22 ^ -quality 100 ^ c:/path/to/jpeg-dir/pdffile-*.jpeg ^ c:/path/to/final.jpg 
Vielen Dank für Ihre Antwort. In ImageMagick 6.9.9 wird keine Geometrieparameter angezeigt. Auch ist die Bildqualität des kombinierten Bildes immer noch beschissen, ich kann buchstäblich kein Wort daraus lesen. Geek vor 6 Jahren 0
2
erjiang

Da ImageMagick bereits Unterstützung für GhostScript enthält, können Sie das Ganze auf einmal erledigen:

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg 

Das nimmt jede Seite und erstellt ein langes JPEG-Ende von Ende zu Ende.

Dies führt jedoch NICHT zu qualitativ hochwertigen JPG-Dateien, da Ghostscript mit seinen Standardeinstellungen verwendet wird (und diese Einstellungen sind ziemlich schlecht für die JPG-Ausgabe). Wenn Sie dies in zwei Schritten durchführen (und Ihre JPG-Seiten zuerst prüfen), haben Sie eine optimale Kontrolle und auch eine ziemlich gute JPG-Ausgabe. Kurt Pfeifle vor 13 Jahren 1
Sie können die Ghostscript-Einstellungen ändern, indem Sie ImageMagicks -Dichte-Einstellung für die PDF-Datei verwenden und so gute Ergebnisse erzielen. Klopfen Sie nicht auf IM, wenn Sie nicht wissen, wie Sie die entsprechenden Optionen verwenden können. erjiang vor 13 Jahren 0
k .: Hey, ich habe ImageMagick nicht geschlagen. Und ich weiß, wie man seine Optionen auch mit der Anwendung von ICC-Farbprofilen nutzt ... Aber Sie können nicht alle ** Ghostscript-Optionen an die Montage übergeben. Mein Kommentar bezog sich auf Ihren vorgeschlagenen Befehl, der "-Dichte" nicht ** erwähnte. Kurt Pfeifle vor 13 Jahren 1
Übrigens habe ich an anderer Stelle auf SO gelesen, dass ImageMagick intern von PDF in PS und dann von PS in PNG konvertiert wird, wenn Sie es auf diese Weise aufrufen. Das ist ein weiterer Grund, dies nicht zu tun (zwei Konvertierungen => weniger Qualität und langsamer). Ibrahim vor 11 Jahren 0