PDF mit GhostScript erstellen

Einleitung

Diese Möglichkeit ist die beste, die ich kenne, um komfortabel auf seinem eigenen Rechner PDF-Dateien kostenlos zu generieren. Ursprünglich ein Programm aus der Linux-Welt, gibt es diese Software mittlerweile für zahlreiche Plattformen. Ursprünglich ist diese Software kommandozeilenorientiert. Was jetzt erst mal abschreckend wirken mag, ist kein Problem, da es mit GSview eine komfortable graphische Oberfläche gibt. Diese Kommandozeilenorientierung wird sich im Laufe dieses Kapitels sogar noch als großer Vorteil herausstellen.

Die mit GhostScript generierten PDF-Dateien sind spartanisch. Mehr als ein Dokument einfach umzuwandeln ist nicht drin. Keine Lesezeichen, keine Sicherheitseinstellungen usw. Aber dafür eben kostenlos. Und, auch das muß erwähnt werden, es unterstützt sämtliche Parameter des Adobe Distillers in der Version 4. Die Möglichkeiten, ein Dokument zu beeinflussen, sind damit immens.

Mit FreePDF – ebenfalls Freeware, auf die ich nicht näher eingehen möchte – ist es ebenfalls möglich, PDF-Dateien kostenlos zu erstellen. Ich gehe deswegen nicht näher darauf ein, weil es sich prinzipiell um dieselbe Software wie GhostScript handelt. Der Unterschied besteht in einer geringfügig aufwendigeren Installation und dem daraus resultierenden Vorteil, daß die Übergabe der erstellten PS-Datei an GhostScript automatisch geschieht und nicht von Hand geschehen muß. Ansonsten weist die resultierende PDF-Datei dieselben Eigenschaften auf, wie eine direkt mit GhostScript erzeugte, da sie ja ebenfalls mittels GhostScript erzeugt wurde.

Benötigte Software

Sie brauchen dazu eigentlich nur einen PostScript-fähigen Druckertreiber und GhostScript. Ersterer kümmert sich um die Erstellung einer PostScript-Datei, welche dann mit GhostScript in eine PDF-Datei umgewandelt wird. Ich empfehle, den Adobe PostScript PrinterDriver zu verwenden

GhostScript wiederum ist ein PostScript-Interpreter, der aber auch PS-Dateien in PDF-Dateien umwandeln kann. Sie können also auch PS-Dateien öffnen, betrachten und auf nicht-PostScript-fähigen Druckern ausdrucken. Die dafür notwendige Rechenarbeit wird damit nicht mehr vom Drucker oder RIP erledigt, sondern von GhostScript. Des Komforts halber empfehle ich allerdings, auch GSview zu installieren, da die Bedienung sonst etwas schwieriger und aufwendiger ist.

Ein weiterer Vorteil von GhostScript, der jetzt nichts mit PDF zu tun hat, ist folgender: Sie können damit einzelne Seiten von Dokumenten in Graphiken umwandeln, um sie in andere Dokumente einzufügen. Interessant, wenn die ursprüngliche Software keinen vernünftigen Export anbietet.

Woher bekomme ich diese Software und was kostet Sie?

Als Druckertreiber verwenden Sie einen Treiber aus dem Lieferumfang von Windows oder den Adobe PostScript PrinterDriver. Den Adobe PostScript PrinterDriver können Sie auf der Homepage von Adobe unter http://www.adobe.de downloaden.

GSview und GhostScript erhalten Sie unter http://www.cs.wisc.edu/~ghost/ als Download. Derzeit (Juni. 2006) ist GhostScript Version 8.54 und GSview Version 4.8 aktuell.

Die aufgeführte Software erhalten Sie, und das ist das Schöne daran, kostenlos angeboten. Sie bezahlen also nur Ihre Internet-Zugangskosten. Beachten Sie aber trotzdem das jeweilige Copyright und den Lizenzvertrag!

Installieren und Einrichten der Software

Ich setze mal voraus, daß Sie einen Druckertreiber problemlos selber installieren können. Auch GhostScript stellt einem normalerweise vor keine größeren Probleme. Zur Installation von GhostScript starten Sie einfach die Datei "gsXXw32.exe" und folgen Sie den Anweisungen. Anschließend machen Sie dasselbe mit GSview.

Anders mag es beim Einrichten des Druckertreibers aussehen. Ich möchte jedoch hier nicht weiter auf das Einrichten dieser Komponenten eingehen. Detailliertere Informationen dazu finden Sie im Bereich "PostScript" auf meiner Site. Dieser ist ebenfalls als Download erhältlich.

Erstellen der PostScript-Datei

Das Erstellen von PostScript-Dateien ist ganz einfach. Drucken Sie Ihr Dokument einfach mittels des vorher installierten Druckertreibers in eine Datei. Achten Sie bitte darauf, im Druckmenü die Option "Druck in Datei umleiten" zu deaktivieren. Diese "Umleitung" haben Sie bereits durch das Verbinden des Treibers mit "File:" während der Installation eingestellt. Das war's.

Beachten sollte man allerdings eines: Viele Textverarbeitungsprogramme passen das Layout an den Drucker an. Manchmal gibt es allerdings eine mehr oder minder versteckte Möglichkeit, diese Funktion zu deaktivieren. Dies kann aber dafür sorgen, daß in den nicht-bedruckbaren Rand gedruckt werden müßte.

Durch dieses Anpassen jedenfalls kann sich das Layout ändern, wenn man mittels Druckertreiber eine PDF-Datei erstellen möchte. Deswegen gilt auch hier:

  • Wenn das Dokument bereits von Anfang an dazu gedacht ist, in eine PDF-Datei umgewandelt zu werden, sollte man diesen Druckertreiber als Standard-Drucker einstellen solange man an diesem Dokument arbeitet. Oder
  • den Druckertreiber als Standard-Drucker einstellen, bevor man die Umwandlung vornehmen möchte und dann das Layout kontrollieren.

Die erzeugten Dateien sollten die Endung "*.ps" haben. Falls Ihre Anwendungs-Software auf der Endung "*.prn" besteht und sich diese nicht überschreiben läßt, ändern Sie bitte den Dateinamen anschließend manuell.

Erschrecken Sie übrigens nicht über die im Verhältnis zur ursprünglichen Datei extrem großen PS-Datei. PostScript ist ein sehr geschwätziges Format. Die PDF-Datei wird dann deutlich kleiner.

Umwandeln in eine PDF-Datei

Konvertierungsmenü Wenn Sie Ihre PostScript-Datei erstellt haben, kommt jetzt GSview in's Spiel. Öffnen Sie Ihre PostScript-Datei und öffnen Sie den Dialog "Datei - Konvertierung". Es erscheint dabei der abgebildete Dialog.

Aktivieren Sie hier unter "Gerät:" den Treiber "pdfwrite". Die anderen Einstellungen wie Auflösung und Seiten sind Ihren Anforderungen überlassen. Unter "Einstellungen" stehen Ihnen noch weitere Möglichkeiten zur Verfügung.

Interessant auch noch die Option "Seiten-Offset (pt)". Dieser Offset dient dazu, das Druckbild zu verschieben. Das erhöhen des X-Wertes beispielsweise verschiebt das Druckbild nach rechts, ein Verringern des Y-Wertes verschiebt es nach unten. Als Einheit wird ein Punkt benutzt.

Einstellungsmenü Alle weiteren Einstellmöglichkeiten sind nur selten für den unerfahrenen Anwender selbsterklärend. Es handelt sich dabei um jene Parameter, die auch der Acrobat Distiller unterstützt. Ghost­Script rühmt sich, alle Parameter der Distiller-Version 4 zu unterstützen. Mit diesen Parametern können Sie beispielsweise die jeweils optimalen Einstellungen vornehmen, je nachdem ob Sie das Dokument zum Ausdrucken vorsehen wollen, oder nur für das Lesen am Bildschirm.

Eine kurze Einführung zu diesen Parametern sollte nach der Installation auf Ihrer Festplatte sein: Suchen Sie die Datei "ps2pdf.htm" in Ihrem Installations-Verzeichnis. Diese gibt eine kurze Einführung, leider in Englisch.

Zum endgültigen Umwandeln Ihrer PostScript-Datei in eine PDF-Datei müssen Sie nur noch "OK" drücken und Pfad und Dateinamen für Ihre Datei festlegen. Das war's.

Die wichtigsten Parameter der PDF-Erstellung, die GhostScript anbietet, möchte ich nun noch kurz erläutern.

Parameter

Beschreibung

CompatibilityLevel

Hier kann die PDF-Version angegeben werden. GhostScript unterstützt die Versionen 1.1 bis 1.4. Wird eine hohe Stufe gewählt, kann die Datei nicht auf älteren Readern gelesen werden.

Dabei entsprechen folgende PDF-Level folgenden Reader-Versionen:
Level 1.1 – Reader 2.0
Level 1.2 – Reader 3.0
Level 1.3 – Reader 4.0
Level 1.4 – Reader 5.0
usw.

Ältere Reader Versionen als Version 4.0 sollten an sich kaum mehr unterwegs sein. Wenn Sie PDF-Dateien im Web anbieten wollen, sollten Sie aber trotzdem immer einen Link anbieten, damit der Besucher sich ggf. den aktuelleren Reader downloaden kann.

AutoRotatePages

Für diesen Parameter stehen drei Optionen zur Verfügung. Diese werden aber nur beachtet, wenn keine DSC-Kommentare dem entgegensprechen. Eine genauere Beschreibung hierzu finden Sie im bereits erwähnten Dokument von Adobe. Folgende Optionen stehen zur Verfügung:

  • /None: AutoRotatePages ist abgeschalten
  • /All: Verwendet die hauptsächliche Textausrichtung und dreht alle Seiten um den selben Winkel
  • /PageByPage: Dreht die einzelnen Seiten einzeln in die Hauptausrichtung. Ideal, wenn das Dokument hoch- und querformatige Seiten enthält.

CompressPages

Komprimiert die Datei mittels Flate-Kompression. Siehe auch UseFlateCompression. Flate-Kompression ist eine Open-Source-Weiterentwicklung der LZW-Kompression, die effizienter und ohne Lizenzgebühren benutzt werden kann.

ASCII85EncodePages

Steht dieser Parameter auf true wird die Datei im ASCII85-Format abgespeichert. Die komplette Datei besteht dann fast nur aus ASCII85-Zeichen. Dies hat eine größere Datei zur Folge.

UseFlateCompression

Steht dieser Parameter auf true, wird das Dokument mittels ZIP-Kompression gepackt. Steht sie auf false und steht CompressPages auf true, wird die LZW-Kompression benutzt unabhängig von der Einstellung unter CompatibilityLevel

EmbedAllFonts

Ist dieser Parameter eingeschaltet, werden alle Fonts in die PDF-Datei eingebettet. Dies stellt sicher, daß auch auf Systemen, auf denen die Fonts nicht vorhanden sind, das Dokument richtig dargestellt werden kann.

SubsetFonts

Diese Eigenschaft kann nur ein- und ausgeschaltet werden. Ist sie eingeschaltet, werden von einem Zeichensatz nur die benötigten Zeichen, nicht der komplette Zeichensatz eingebettet.

MaxSubsetPct

Hier wird angegeben, ab wieviel Zeichen, die pro Zeichensatz genutzt werden, der gesamte Zeichensatz eingebettet wird und nicht nur die einzelnen Zeichen.

ConvertCMYKImagesToRGB

Konvertiert die Bilder ins RGB-Format. Interessant, wenn die Datei nur dazu gedacht ist, am Bildschirm angezeigt zu werden.

EncodeColorImages

Schaltet das Packen von Farbbildern ein. Weitere benötigte Informationen werden über die folgenden Parameter festgelegt.

ColorImageFilter

Legt fest, welche Kompressionsart benutzt wird. Diese Option hat keine Auswirkung, wenn entweder AutoFilterColorImages auf true oder EncodeColorImages auf false steht. Folgende Möglichkeiten stehen zur Auswahl:

  • /DCTEncode: JPEG-Kompression
  • /FlateEncode: ZIP-Kompression
  • /LZWEncode: LZW-Kompression

AutoFilterColorImages

Hat nur eine Wirkung, wenn EncodeColorImages auf true steht. Wenn AutoFilterColorImages auf true steht, wird für Photos die JPEG-Kompression genutzt und für Flate-Kompression für Screenshots.

DownsampleColorImages

Wenn dieser Parameter auf true steht, wird die Auflösung von Bildern auf den in ColorImageResolution angegebenen Wert heruntergerechnet. Ebenfalls wird ggf. die Farbtiefe auf den in ColorImageDepth eingestellten Wert verringert.

ColorImageResolution

Wenn DownsampleColorImages auf true steht, werden Bilder auf den hier angegebenen Wert heruntergerechnet. Welches Verfahren dabei benutzt wird, wird mittels des Parameters ColorImageDownsampleType festgelegt.

ColorImageDepth

Gibt an, wieviel Bit pro Farbe für Farbbilder verwendet werden sollen. Auch dieser Parameter hat nur eine Wirkung, wenn DownsampleColorImages auf true steht

ColorImageDownsampleType

Legt das Verfahren zur Auflösungsneuberechnung fest. Folgende Möglichkeiten stehen zur Auswahl:

  • /Average: Für das neue Pixel wird der Durchschnittswert der Ausgangspixel verwendet.
  • /Bicubic: Es wird die bi­kubische Interpolation verwendet. Oft das beste Verfahren.
  • /Subsample: Für das neue Pixel wird der Wert des mittleren Pi­xels von denen, die ersetzt werden, benutzt.

Vergleichbare Möglichkeiten, wie sie hier für Farbbilder aufgeführt sind, existieren auch für Graustufenbilder und Strichzeichnungen.

Umwandeln in das PDF-Format per Kontextmenu

Arbeitet man mit GhostScript besteht die Möglichkeit, aus einer PS-Datei über das Kontextmenü des Explorers eine PDF-Datei zu erstellen. Dazu ist allerdings einmalig etwas Handarbeit notwendig.

An dieser Stelle herzlichen Dank an Ralf Einhorn, der diesen Trick auf seiner Website vorgestellt hat. Er stellt dort übrigens noch weitere interessante Software vor

Unter Windows 2000 funktioniert es wie folgt, andere Betriebssysteme sollten eine ähnliche Vorgehensweise haben.

  • Öffnen Sie den Explorer und markieren irgendeine PS-Datei
  • Wechseln Sie zu "Extras – Ordneroptionen" und dann in den Reiter "Dateitypen"
  • Wählen Sie die Erweiterung "PS" aus.
  • Klicken Sie dann rechts unten auf "Erweitert"
  • Legen Sie dann mit "Neu" einen neuen Vorgang an, den Sie beispielsweise "PDF erstellen" nennen.
  • Unter Anwendung für diesen Vorgang tragen Sie den Pfad zur Datei "gswin32c.exe" ein. Diese befindet sich in Ihrem GhostScript-Installationsverzeichnis im Unterverzeichnis "bin".
  • Fügen Sie nach einem Leerzeichen im selben Feld folgende Aufrufparameter an: "-q -dNOPAUSE -dBATCH -sDEVICE#pdfwrite -sOutputFile\"#%1\".pdf -c save pop -f \"%1\"". Möchten Sie weitere Parameter aus dem Funktionsumfang nutzen, können Sie das natürlich tun.
  • Bestätigen Sie zweimal mit "OK"
  • Schließen Sie die "Ordneroptionen".

Sie können nun natürlich unter Verwendung verschiedener Parameter verschiedene Einträge im Kontextmenü erzeugen und dann zum Beispiel mit einem Mausklick entscheiden, ob Sie eine PDF-Datei wollen, die nur auf dem Monitor betrachtet werden soll (und eine entsprechend geringe Auflösung und Dateigröße aufweist) oder ob Sie die Datei eher für den Ausdruck optimiert haben wollen.