====== Ghostscript ======
[[http://www.ghostscript.com/|Ghostscript]] ([[wpde>Ghostscript|Wikipedia-Artikel]]) ist ein sehr standardkonformer, freier PDF- und [[wpde>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 =====
* [[https://wiki.scribus.net/canvas/Reduce_the_size_of_Scribus_generated_PDFs]]
* [[https://gist.github.com/firstdoit/6390547|Compress PDF files with ghostscript]]
===== 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 [[http://www.ghostscript.com/doc/current/Devices.htm|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)((Quelle: [[http://www.ghostscript.com/doc/current/Use.htm#Rendering_parameters]]))
* ''-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 [[einfuehrung:faq_problemloesungen#weitere_massnahmen|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 [[#PDFs zusammenfügen|vorherigen Abschnitt]] bekannten Parameter zum Definieren eines Dokument-Ausschnitts lassen sich natürlich ebenfalls verwenden.