PDFs zusammenführen/verbinden mit Ghostscript

Dieses Ghostscript-Beispiel demonstriert, wie drei PDF Dokumente in einer vierten PDF-Datei zusammengeführt (konkateniert) werden. Es können auf diese Weise beliebig viele PDF Dokumente per Ghostscript miteinander verbunden werden.

Für Python Enthusiasten empfhielt sich der Weg über das Python Modul PyPDF.

Ghostscript Ausgabe-Formate

Die Ausgabeformate von Ghostscript (z.B. JPG, PNG, PDF, Postscript usw.) lassen sich mittels sog. Devices bestimmen. In folgender Liste sind einige Highlevel- und Lowlevel-Formate aufgelistet.

Lowlevel-Formate:

  • PNG
  • JPEG (JFIF)
  • PNM
  • TIFF (inkl, LZW-komprimiert, 24 Bit, Graustufen usw.)
  • FAX
  • BMP
  • PCX
  • PSD (DeviceN color model)

High-Level Formate:

  • PDF
  • PostScript
  • Encapsulated Postscript (EPS)
  • PCL-XL
  • HP-PCL (HP Laserjet compatible)

Es existieren noch weitere Formate und Ausgabemöglichkeiten (z.B. X11), die hier nicht näher beschrieben sind. Für weitere Info: Ghostscript Devices.

Seitenweise Konvertierung einer PDF-Datei mit Ghostscript und pdfinfo

Wenn man gezwungen ist, eine Konvertierung mit Ghostscript seitenweise durchzuführen (wobei das Quellformat PDF ist), steht man vor dem Problem, wie man die Seitenzahl der Dokumente ermittelt und die Seitennummern als StartPage- und EndPage-Parameter an Ghostscript übergeben kann.

Eine komplette Anleitung will ich hier nicht schildern. Aber des Rätsels Lösung könnte hier das Tool pdfinfo der xPDF-Tools sein. Pdfinfo ermittelt ua. die genaue Seitenzahl eines PDF-Dokuments, welches für diese Zwecke verwendet werden kann. Die aus pdfinfo gewonnene Information lässt sich dann recht einfach als Input für Ghostscript verwenden.

Die einfachste Umsetzung ist ein kleines Script oder Programm, welches zunächst mithilfe pdfinfo die Gesamt-Seitenanzahl der PDF ermittelt (schwer zu ermitteln ist dabei die genaue Position der Seitenanzahl in der Ausgabe von pdfinfo) und anschließend in einer iterativen Schleife die aktuelle Seitennumer (beginnend bei 1) an Ghosscript als StartPage- und EndPage-Parameter übergibt.

Beim ersten Schleifen-Durchlauf sieht dann z.B. das Ghostscript-Kommando wie folgt aus:

gswin32c.exe -sDEVICE=“pdfwrite“ -StartPage=1 -EndPage=1 -dNOPAUSE -dBATCH -dSAFER -dQUIET -sOUTPUTFILE=“yourpdffile.pdf“ „yourpostscriptfile.ps“

Postcript zu PDF mittels Ghostscript

Der kostenlose Postscript Interpreter Ghostscript kann Postscript neben vielen anderen Ausgabeformaten auch zu PDF konvertieren. Folgender Aufruf konvertiert eine Postscript Datei im Batch zu PDF.

Wenn ein 24-Bit Tiff-Resultat gewünscht ist:

Tipp: Auf Linux wird Ghostscript (welches oft schon vorinstalliert ist) mit dem Kommando gs aufgerufen.