====== 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.