Verwenden Sie Ghostscript, um mehrseitige PDF-Dateien in einzelne JPG-Dateien zu konvertieren?

15

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

Andrew
quelle

Antworten:

17

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

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

Mir ist keine Software bekannt, die das auf einmal 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 so anpassen, dass sie für Sie funktionieren. Ich würde damit anfangen:

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-Qualität" auf 95%. Es wird eine Auflösung von "600x600 dpi" verwendet Kontrollieren Sie die Seitengröße der resultierenden JPGs, falls die Standardeinstellung Ihres 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) können Sie das Kachelmuster steuern. Wenn Sie z. B. verwenden, erhalten-tile 4x3Sie das folgende 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 montagehat viele Dutzend zusätzliche 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 ihn 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 haben A4- Seiten (= 595 x 852 pt) in Ihrer PDF-Datei, und Sie möchten diese beibehalten, fügen jedoch auch einen Abstand von 11 pt zur horizontalen und 22 pt zur vertikalen Richtung der Kacheln hinzu (plus 4 pt starker grauer Rand / Rahmenlinien) um jedes Plättchen herum):

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 fehlt.) Wenn Sie die gute Bildqualität während des Zusammenfügens / Zusammenfügens, die Ihre PDF-zu-JPG-Konvertierung erstellt hat, nicht verlieren möchten, fügen Sie den-quality 100Parameter wie folgt zu Ihrer Befehlszeile hinzu :

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    -quality 100 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg
Kurt Pfeifle
quelle
Vielen Dank für Ihre Antwort. Ich sehe Geometrieparameter in ImageMagick 6.9.9 nicht. Auch die Bildqualität des kombinierten Bildes ist immer noch schlecht, ich kann buchstäblich kein Wort davon lesen.
Geek
2

Da ImageMagick GhostScript unterstützt, können Sie alles auf einmal erledigen:

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg

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

Erjiang
quelle
1
Dies ergibt jedoch KEINE JPG-Qualität, da Ghostscript mit den Standardeinstellungen verwendet wird (und diese sind für die JPG-Ausgabe recht scheu). Wenn Sie dies in zwei Schritten tun (und zuerst Ihre JPG-Seiten prüfen), erhalten Sie eine optimale Kontrolle und eine recht gute JPG-Ausgabe.
Kurt Pfeifle
Sie können die Ghostscript-Einstellungen ändern, indem Sie die Einstellung -density von ImageMagick für die PDF-Datei verwenden und so gute Ergebnisse erzielen. Klopfen Sie nicht an IM, wenn Sie nicht wissen, wie die Optionen verwendet werden.
Erjiang
1
k .: Hey, ich habe nicht an ImageMagick geklopft. Und ich weiß, wie ich seine Optionen verwenden kann, auch wenn ich ICC-Farbprofile anwende ... Sie können jedoch nicht alle Ghostscript-Optionen an die Montage übergeben. Mein Kommentar bezog sich auf Ihren vorgeschlagenen Befehl, der nicht erwähnt wurde -density.
Kurt Pfeifle
Übrigens habe ich an anderer Stelle auf SO gelesen, dass ImageMagick beim Aufrufen intern von PDF nach PS und dann von PS nach PNG konvertiert. Dies ist ein weiterer Grund, warum Sie dies nicht tun sollten (zwei Konvertierungen => geringere Qualität und langsamer).
Ibrahim