Workshops / Hintergrundberichte / Buchvorstellungen
---------------------------------------------------
1. Workshop: AFPL Ghostscript 6.50 - Teil 4 (von Uwe Pannecke)
Crash-Kurs durch die Ghostscript-Untiefen
Mit ein wenig Verzögerung in dieser Septemberausgabe nun der versprochene
vierte Teil des Ghostscript-Workshops. Diesmal soll neben der harmonischen
Zusammenarbeit von Ghostscript [1] und Final Writer die Ausgabe von PS- und
PDF-Dateien in weiteren Formaten sowie die Erhöhung des Bedienkomforts im
Mittelpunkt unserer Betrachtungen stehen.
1. Teamwork
Im letzten Teil haben wir uns Ghostscripts interessante Fähigkeit,
PostScript-Dateien in (zunehmend) betriebssystemunabhängig verarbeitbare
PDF-Dokumente umwandeln zu können, kennen gelernt.
Anwender der Textverarbeitung Final Writer werden sich, obwohl das Programm
in der letzten Version bereits fünf Jahre alt ist, über dessen
Leistungsfähigkeit im täglichen Einsatz nach wie vor freuen. Doch leider
findet sich unter den vielfältigen Funktionen kein PDF-Export erstellter
Dokumente. Da aber Final Writer in der Lage ist, seine Dokumente als
Postscript-Dateien auszugeben, ist das PDF-Format nur einen (Ghostscript-)
Schritt entfernt.
Im Unterschied zu einigen Firmen auf dem Amiga-Markt demonstrieren die
beiden Programme eindrucksvoll, dass man gemeinsam stark sein kann. Zwar
könnt ihr auch per Hand jede exportierte PS-Datei über Ghostscript ins PDF-
Format wandeln, doch wesentlich komfortabler ist ein Automatismus, der
einem diese Arbeit abnimmt. Dank ARexx und dem Skript "Convert to PDF" [2]
des nur mit seinem Synonym auftretenden "ELAL" ist auch dieser Wunsch
mit wenig Aufwand erfüllbar.
Kopiert das ARexx-Skript nach "FinalWriter_D:FWMacros". Da das ARexx-File
für Ghostscript 5.x geschrieben wurde, solltet ihr vor dem eigentlichen
Start zuvor mit Hilfe eines beliebigen Editors im Skript den Stapelspeicher
von 40000 auf den für Ghostscript 6.50 notwendigen Wert von 200000 erhöhen.
Screenshot:
Um den Komfort auf die Spitze zu treiben, binden wir nun dieses Skript in
das FinalWriter-Menü ein. Wählt dazu in FinalWriter in der Menü-Zeile
"User/Andere/Voreinsteller..." und klickt im aufpoppenden Fenster unter
"Aktionen" auf "Neu", anschließend füllt ihr das Feld unter "Name des
Menüpunkts" mit einem gewünschten Eintrag, wie etwa sinnigerweise "Convert
to PDF", und stellt den "Befehl/Typ" auf "ARexx-Script". Mit einem weiteren
Klick auf "Auswählen..." öffnet sich ein Datei-Requester, der den Inhalt
des "FWMacros"-Verzeichnisses auflistet. Nachdem das Skript "Convert to
PDF" ausgewählt wurde, beendet ihr die Konfiguration mit einem beherzten
Klick auf "Sichern".
Screenshot:
Ab sofort wartet die PDF-Ausgabe in FinalWriter unter dem Menü-Abschnitt
"User" auf ihren Einsatz.
Screenshot:
Vom eigentlichen Zusammenspiel FinalWriters und Ghostscripts bemerkt der
Anwender nicht sonderlich viel: Ghostscript erledigt seine Konvertierung im
Hintergrund. Lediglich für die Ausgabe der fertigen PDF-Datei will das
Skript von euch einen Dokumentnamen und das Zielverzeichnis.
Screenshot:
Bei den Tests konnten typische FinalWriter-Dokumente mit unterschiedlichen
Schriftschnitten und reichlich eingebundenem Bildmaterial problemlos
konvertiert werden. Bei der Anzeige der PDF-Dateien stellte sich heraus,
dass "APDF" offensichtlich keinerlei Gefallen an diesen Dokumenten fand und
grundsätzlich jeden Anzeigeversuch mit einem Absturz quittierte. Schade,
zeigte sich "APDF" doch bisher recht robust beim Umgang mit dem portablen
Dokumentenformat.
Ghostscript selbst hatte keine Probleme mit der PDF-Präsentation, ebenso
wenig wie der "Acrobat Reader", "GsView" und "KGhostView" unter Microsoft
Windows und Linux.
2. Rasterformate
Ghostscript bringt im Schlepptau Treiber für einige Grafikformate mit und
erlaubt so die Konvertierung von PS- und PDF-Dokumenten in diese Formate
und die Ausgabe der Grafikdateien auf ein gewünschtes Gerät. Zu den
unterstützten Formaten zählen u.a. TIFF, BMP, PBM, PCX, PNG und JPEG.
Wollt Ihr etwa eine im Verzeichnis "Work:" vorhandene 25-seitige Datei
"test.pdf" Seite für Seite in eines der unterstützten Rasterformate wandeln
und nach "RAM:" ausgeben, lautet die passende Syntax nach dem Setzen des
Stapelspeichers auf den Wert 200000:
gs -dNOPAUSE -dFIXEDMEDIA -sDEVICE=Bildformat -rWertXxWertY -sOutputFile=RAM:Seite-0%d.Dateiendung Work:Test.pdf
Mit "-dNOPAUSE" überreden wir Ghostscript, bei der Konvertierung alle
Seiten in einem Rutsch ohne explizite Bestätigung durch den Anwender
abzuarbeiten. Der Schalter "-dFIXEMEDIA" veranlasst das Programm, nach der
Initialisierung die Seitengröße zu fixieren. Wenn es erforderlich sein
sollte, wird Ghostscript Seiten entsprechend drehen und/oder skalieren.
Der Schalter "sDEVICE=" bekommt das entsprechende Bildformat zugewiesen,
mit "-rWertXxWertY" legen wir die gewünschte DPI-Auflösung der Ausgabedatei
fest. Wird keine spezielle Auflösung für die Bildformate angegeben, nutzt
Ghostscript die vordefinierten. Bei TIFF wäre es die FAX-Auflösung 204 x
196 DPI, bei JPEG 72 x 72 DPI. Die Ausgabedatei wird durch das
"-sOutputFile"-Argument "RAM:Seite-%02d.Dateiendung", Seite für Seite ab
Ziffer 01 zweistellig durchnummeriert, mit der gewünschten Dateiendung in
der RAM-Disk abgelegt.
Soll also unser "Test.pdf"-Dokument im JPEG-Format in der Auslösung 200x200
DPI nach "RAM:" ausgegeben und die Seitenzahl fortlaufend auf zwei Stellen
angegeben werden, geben wir Ghostscript in der Shell die entsprechenden
Anweisungen:
gs -dNOPAUSE -dFIXEDMEDIA -sDEVICE=jpeg -r200x200 -sOutputFile=RAM:Seite-%02d.jpg Work:Test.pdf
Je nach Leistungsfähigkeit der CPU im Amiga liegt nach mehr oder weniger
kurzer Zeit das Ergebnis in der RAM-Disk vor.
Screenshot:
3. Mehr Komfort
Nach wie vor tummeln wir uns in der Shell, um Ghostscript unsere Wünsche zu
übermitteln. Das klappt nach einer Eingewöhnungsphase auch ganz gut. Doch
ein wenig mehr Komfort wird wohl niemand verschmähen. Und mit den zwei
nachfolgend beschriebenen Befehlserweiterungen sollte auch eine komplette
Maussteuerung, etwa per selbsterstelltem Icon, nur noch wenige
Befehlszeilen entfernt sein.
Dateiauswahl-Requester
Bei allen bisherigen Anweisungen haben wir dem Programm die zu
bearbeitenden Dateien in der Kommandozeile übergeben. Deutlich bequemer
wäre eine Auswahl über einen Requester. Das haben sich offensichtlich auch
die Ghostscript-Programmierer gedacht und eine solche Option in das
Programm implementiert. Wenn wir aus dem obigen Beispiel die Angabe
"Work:Test.pdf" durch "`RequestFile`" ersetzen, können wir zukünftig die
gewünschten Dateien per Maus auswählen. Außerdem sorgt der Zusatz
"PATTERN "(#?.ps|#?.pdf)"" für mehr Übersicht, da er alle Dateien, die
nicht auf ".ps" oder ".pdf" enden, im Requester-Fenster ausblendet.
Ende und Aus
Eine zweite Besonderheit hat bisher unnötig viel zusätzliche Arbeit
erfordert und eine mögliche Automatisierung erschwert: Ghostscript meldete
sich nach getaner Arbeit im Interpreter-Modus in der Shell zurück und
musste durch "quit" bzw. "CTRL + C" beendet werden. Übergeben wir dem
Programm in der Kommandozeile "-dBATCH", wird es sich nach Erledigung
seiner Aufgabe selbständig terminieren. Alternativ können wir auch an das
Ende der Zeile ein "-c quit" setzen.
Abschließend die entsprechend erweiterte Shell-Eingabe des obigen
Beispiels:
gs -dBATCH -dNOPAUSE -dFIXEDMEDIA -sDEVICE=jpeg -r200x200 -sOutputFile=RAM:Seite-%02d.jpg `RequestFile PATTERN "(#?.ps|#?.pdf)"`
4. Schluss für heute
So, das soll es für diesen Monat gewesen sein. In einer der nächsten AMIGA-
aktuell-Ausgaben wird Ghostscripts Funktionalität beim Ausdruck intensiver
beleuchtet. Den Abschluss soll eine Steuerung des Programms über Icons und
eine (von euch erweiterbare) Mini-GUI bilden.
Bis dann.
[1] im Aminet unter /gfx/conv/GS650-xxx.lha
[2] im Aminet unter /util/rexx/Convert_to_PDF.lha
Uwe Pannecke <Uwe.Pannecke@t-online.de>
|