GhostScript und GhostPCL sind zwei verwandte Anwendungen, welche unter Unix-Derivaten wie Linux eingesetzt werden, um PostScript- bzw. PCL-Dokumente zu erzeugen und zu verarbeiten. PostScript ist eine Programmiersprache, welche das Unternehmen Adobe entwickelte, um Druckseiten zu beschreiben. Den gleichen Ansatz verfolgt das Unternehmen Hewlett Packard mit der Sprache PCL. In beiden Fällen wurden die früheren Grundsprachen durch weitere zu Sprachfamilien ergänzt und auch die Möglichkeiten schließen inzwischen die Steuerung eines Druckers etwa zur Aktivierung der Dokumentensortierung und des Duplexdrucks sowie die Kommunikation mit dem Drucker zum Abruf aktueller Statusinformationen mit ein.
Für ein von uns entwickeltes System zur Druckkostenabrechnung wurden beide Programme angepasst, um im Zuge einer Verarbeitung von PostScript- und PCL-Dokumenten statistische Informationen über das jeweilige Dokument zu liefern, mit deren Hilfe der Aufbau des Dokuments ausgewertet und dieses dann unterschiedlich abgerechnet werden kann. So ist es möglich, Seitenformate zu zählen oder die Farbigkeit einer Seite zu ermitteln.
Patch herunterladen
Für die Anpassungen von GhostScript oder GhostPCL ist nur einer der folgenden Patches erforderlich.
ghostscript-gpl-8.56-analysis.patch.gz
ghostscript-gpl-8.62-analysis.patch.gz
ghostpcl_1.4.1.patch.gz
Installation
Zur Installation müssen die Quelltexte des jeweiligen Programms in der passenden Version heruntergeladen werden. Dann ändert man diese mit Hilfe eines Patches aus der obigen Liste. Nach erfolgreicher Anpassung wird das Programm wie gewohnt kompiliert und installiert.
Nutzung
Die Programme gs und pcl6 können wie gewohnt weiter genutzt werden. Durch entsprechende Umgebungsvariablen ist aber die Steuerung der Lieferung von Analysedaten möglich. Die folgenden Umgebungsvariablen werden dabei erkannt:
- TOXA_FILEDESC enthält einen positiven Ganzzahl-Wert und bestimmt die Nummer des Streams, über den die Analysewerte ausgegeben werden. Fehlt diese Angabe oder liegt sie außerhalb des gültigen Bereichs (1-255), so werden Ausgaben von Analysedaten generell unterdrückt. Dies ist der Standardzustand und garantiert so, dass auch eine gepatchte Version von Ghostscript wie bisher von anderen Anwendungen genutzt werden kann.
- TOXA_REDUCE_COLOUR ist ein boolescher Schalter. Sobald diese Umgebungsvariable vorhanden ist (der Wert ist egal, auch ein leerer Wert ist möglich), wird pro Seite nur die erste genutzte Farbwahl angezeigt. Dies ermöglicht die grundlegende Erkennung von Farbseiten ohne den mitunter beachtlichen Überhang an folgenden Farbauswahlen, die die Performance durch eine größere Menge an Analysedaten beeinträchtigen können.
- TOXA_REDUCE_BITMAP arbeitet analog zu TOXA_REDUCE_COLOUR als boolescher Schalter. Dieser betrifft die Einbindung von Angaben zur Größe von Rastergrafiken. Ist er gesetzt, werden keine Größenangaben zu enthaltenen Bitmaps geliefert, was auf Seiten mit gerasterten Schriften, bei denen jeder Buchstaben durch ein Bitmap gesetzt wird, zu einer Verkleinerung der Menge von Analysedaten führt.
- TOXA_BITMAP_MINWIDTH=x
ermöglicht die Angabe einer minimalen Breite für Rastergrafiken, die
notwendig ist, um überhaupt in die Analysedaten aufgenommen zu werden.
Alternativ dazu kann auch eine minimale Höhe von Rastergrafiken mit TOXA_BITMAP_MINHEIGHT=y
gesetzt werden (x und y sind Ganzzahlwerte größer oder gleich 10 und geben die Maße
in Punkten an). Fehlt eine der Angaben, so wird der Standardwert 0
angenommen.
Unterschreitet eine Rastergrafik beide Werte, so wird Sie auch unabhängig von TOXA_REDUCE_BITMAP nicht in den Analysedaten angezeigt. Die Funktionen aller drei genannten Variablen bezieht sich nur auf die Größe von Rastergrafiken, nicht aber auf die Wahl eines Farbraums für diese. - TOXA_NO_PREFIX ist ein boolescher Schalter (zum Format siehe TOXA_REDUCE_COLOUR oben). Ist diese Umgebungsvariable vorhanden, so wird der Präfix ANALYSIS: vor jeder ausgegebenen Zeile unterdrückt, was gerade bei sehr vielen Ausgaben eine deutliche Reduktion der Datenmenge zur Folge hat.

