Benutzer-Werkzeuge

Webseiten-Werkzeuge


tools:ghostscript

Ghostscript

Ghostscript (Wikipedia-Artikel) ist ein sehr standardkonformer, freier PDF- und PostScript-Interpreter, der von Scribus zur Darstellung von Postscript-Dateien sowie für die Druckvorschau benötigt wird, aber auch alleine benutzt werden kann, um beispielsweise PDF-Dateien zusammenzufügen, in Bilder umzuwandeln und zu überprüfen.

Auf dieser Seite sollen einige Anwendungsfälle kurz beschrieben werden.

  • Unter Windows müssen sie statt gs den Pfad zu Ghostscript eingeben, beispielsweise
    "C:\Program Files\gs\gs9.18\bin\gswin32c.exe"

    (die Anführungszeichen sind notwendig, weil sich Leerzeichen im Pfad befinden)

  • Unter Linux und anderen unixoiden Systemen müssen sie unbedingt die Groß- und Kleinschreibung beachten – unter Windows ist dies egal.
  • befinden sich Leerzeichen im Pfad oder sonstigen Eingaben, muss diese Angabe von Anführungszeichen (einfache ' oder doppelte ") umgeben sein:
    gs -o "Ausgabe Datei.png" -sDEVICE=png16m Eingabe.pdf
Wichtig:
Ghostscript überschreibt existierende Dateien ohne Warnung, daher vorher Befehle noch einmal genau kontrollieren!

Transparenzen entfernen / reduzieren

Beispielsweise verlangt die Druckerei PDF-1.3, Scribus beherrscht jedoch nicht das Reduzieren von Transparenzen, dies kann mit Ghostscript erledigt werden:

gs -o Eingabe.pdf -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 Ausgabe.pdf
  • -dCompatibilityLevel=1.3 gibt PDF-1.3 als Ausgabeformat an.

PDFs verkleinern

PDFs rastern

Einfachster Fall: Einseitiges Dokument

Um eine PDF-Datei mit Ghostscript in eine Bitmapgrafik umzuwandeln (beispielsweise um sie als Vorschaubilder zu benutzen), bedarf es folgendem Kommando:

gs -o Ausgabe.png -sDEVICE=png16m -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r300 Eingabe.pdf

Erläuterungen zu den Parametern:

  • -o Ausgabe.png legt die Datei Ausgabe.png als Ziel fest
  • -sDevice=png16m weist Ghostscript an, eine PNG-Datei mit 16 Millionen Farben als Farbumfang zu erzeugen; weitere Ausgabe-„Geräte“ lassen sich per gs -h auflisten oder in der Ghostscript-Dokumentation abrufen, eine Auswahl der wichtigsten davon:
    • gnggray Graustufen-PNG
    • pngalpha PNG mit Alpha-Kanal (Transparenz) – erzeugt eine PNG ohne den Hintergrund des (weißen) PDFs
    • jpeg JPEG
    • pdfwrite PDF erzeugen
  • -dTextAlphaBits=4 Antialiasing des Texts (keine „Treppenstufen“ am Text)1)
  • -dGraphicsAlphaBits=4 führt das Antialiasing auch an Grafiken durch
  • -r300 setzt die Auflösung auf 300dpi
Sie müssen den Dateinamen an das Ausgabeformat anpassen: Beispielsweise Datei.png wenn PNG als Ausgabeformat gewählt wurde, Datei.jpg wenn JPEG gewählt wurde.

Mehrseitige PDF

gs -o Ausgabe_Seite%d.png -sDEVICE=png16m -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r300 -dFirstPage=2 -dLastPage=2  Eingabe.pdf
  • -o Ausgabe_Seite%d.png bestimmt, dass die Ausgabedatei Ausgabe_Seite%d.png heißt, wobei %d von Ghostscript durch die Seitenzahl ersetzt wird.
  • -dFirstPage=2 -dLastPage=2 weist Ghostscript an, auf Seite 2 zu beginnen und dort auch aufzuhören; -dFirstPage=1 -dLastPage=3 würde hingegen auf der ersten Seite beginnen und auf der dritten aufhören.

PDFs auf Standard-Konformität überprüfen

Lässt man Ghostscript eine fehlerhafte PDF-Datei umwandeln (auf eine der oben beschrieben Weisen, beispielsweise in eine Grafik), teilt GhostScript uns dies mit:

GPL Ghostscript 9.10 (2013-08-30)
Copyright (C) 2013 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
   **** Warning: stream Length incorrect.
   **** Warning:  An error occurred while reading an XREF table.
   **** The file has been damaged.  This may have been caused
   **** by a problem while converting or transfering the file.
   **** Ghostscript will attempt to recover the data.
   **** Warning:  There are objects with matching object and generation
   **** numbers.  The accuracy of the resulting image is unknown.
   **** Error:  Trailer is not found.
   No pages will be processed (FirstPage > LastPage).

   **** This file had errors that were repaired or ignored.
   **** Please notify the author of the software that produced this
   **** file that it does not conform to Adobe's published PDF
   **** specification.

PDFs zusammenfügen

Beispielsweise praktisch, wenn sie ihr Projekt aus Gründen der Performance in mehrere Scribus-Dokumente aufgeteilt haben.

gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=Zusammengefügt.pdf datei1.pdf datei2.pdf datei3.pdf
  • datei1.pdf, datei2.pdf und datei3.pdf sind beispielhaft Platzhalter für drei zusammenzufügende PDF-Dateien
  • -sOUTPUTFILE=Zusammengefügt.pdf gibt die Ausgabedatei an

PDF in einzelne Dokumente aufteilen

Analog lässt sich natürlich ein Dokument in mehrere PDFs (Seite1.pdf, Seite2.pdf, usw.) aufteilen:

gs -o Seite%d.pdf -sDEVICE=pdfwrite  Eingabe.pdf

Die aus dem vorherigen Abschnitt bekannten Parameter zum Definieren eines Dokument-Ausschnitts lassen sich natürlich ebenfalls verwenden.

tools/ghostscript.txt · Zuletzt geändert: 2017/07/21 02:09 von julius