Navigation
« 

Anonymous




Register
Login
« 
« 

Amiga Future

« 

Community

« 

Knowledge

« 

Last Magazine

The Amiga Future 168 will be released on the 5th May.

The Amiga Future 168 will be released on the 5th May.
The Amiga Future 168 will be released on the 5th May.

The Amiga Future 168 will be released on the 5th May.
More informations

« 

Service

« 

Search




Advanced search

Unanswered topics
Active topics
« 

Social Media

Twitter Amigafuture Facebook Amigafuture RSS-Feed [german] Amigafuture RSS-Feed [english] Instagram YouTube Patreon WhatsApp
« 

Advertisement

Amazon

Patreon

« 

Partnerlinks

AFPL Ghostscript 6.50 Teil 1-4

Description: Amiga Aktuell Ausgabe 2,6,7,9/2002

Categories: [DE] Workshops

Link to this article: Select all

[url=https://amigafuture.de/app.php/kb/viewarticle?a=1661&sid=5db3b382c008d9e374b1a727ca3c22d4]Artikeldatenbank - AFPL Ghostscript 6.50 Teil 1-4[/url]

»AFPL Ghostscript 6.50« - Teil 1 (von Uwe Pannecke)

- Amiga-Release 2 von Rüdiger Hanke -

1. Der Interpreter

Ghostscript [1] als plattformübergreifendes Werkzeug für Anzeige, Druck und Konvertierung von Postscript- und PDF-Dokumenten begleitet bereits seit Jahren den Amiga-User. Obwohl für andere Betriebssysteme bereits aktuellere Versionen verfügbar sind, dümpelte im Aminet-Teich immer noch die zwischenzeitlich etwas angegraute Version 5.10 vor sich hin.

In AMIGA aktuell 10/98 habe ich die Installation und Konfiguration bereits ausführlich beschrieben. Weshalb also nun an dieser Stelle wieder das Thema Ghostscript? Soll hier kalter Kaffe aufgewärmt und so dem AMIGA-aktuell- Magazin zu ein paar Bytes mehr Umfang verholfen werden? Mitnichten. Denn neben seiner unbestreitbaren Funktionalität schwächelt Ghostscript 5.10 an einigen Stellen. Ein beim Export von PDF-Dateien schwerwiegendes Manko: Der Interpreter ist zwar in der Lage, Postscript- Dateien in PDF-Dokumente zu wandeln, die Ergebnisse konnten jedoch meist nicht begeistern, da die verwendeten Schriften für die PDF-Datei in Bitmap- Grafiken gewandelt wurden, so dass einerseits das Dokument ordentlich aufgebläht wurde und andererseits die Darstellungsqualität der Schriften in der PDF-Datei oft alles andere als ansehnlich war.

Spätere Versionen des Interpreters wiesen diesen Mangel nicht mehr auf, waren aber trotz verfügbaren Quellcodes nicht als ausführbares Amiga- Programm zu haben. Rüdiger Hanke wollte dies nicht einfach so hinnehmen, schnappte sich den Sourcecode zu Ghostscript 6.50 und passte diesen an das AmigaOS an [2].

Bei dieser Gelegenheit beseitigte er einige Bugs im Zusammenspiel mit Grafikkarten und spendierte dem Amiga-Port zusätzlich 16- und 24-Bit- Rendering in der Bildschirmdarstellung sowie PowerPC-Unterstützung. Mit Ghostscript 6.50 können nunmehr auch unter dem AmigaOS Fonts als solche aus den Postscript-Dateien in PDF-Dokumente eingebettet werden. Damit kann momentan auf dem Amiga Ghostscript wohl als einziges Programm aufwarten.

2. Installation

Selbige gestaltet sich im Gegensatz zur Konfiguration recht einfach. Ihr benötigt lediglich die auf [2] oder [3] abgelegten Archive GS650-68k.lha (oder die PowerPC-Variante), GS650-Data.lha und GS650-Fonts.lha.

Erstellt nun ein Verzeichnis 'Ghostscript' an beliebiger Stelle auf der Amiga-Festplatte und entpackt den Inhalt der LHA-Archive in die soeben erstellte 'Ghostscript'-Schublade. Abschließend macht Ihr den Pfad zu den Programmdaten AmigaOS-weit über ein Assign bekannt. Residiert Ghostscript beispielsweise unter 'Work:Ghostscript', sorgt in der 'S:user-startup' ein

; BEGIN Ghostscript
Assign Ghostscript: Work:Ghostscript/
; END Ghostscript

mit dem nächsten Start des AmigaOS für die notwendige Zuweisung.

3. Konfiguration

Ähnlich seinem Vorgänger will auch die Version 6.50 mit mehr oder weniger kryptischen Befehlsfolgen zur Zusammenarbeit überredet werden.

Grundsätzlich hat sich gegenüber 5.10 jedoch nicht viel geändert, so dass Ihr die in AMIGA aktuell 10/98 aufgeführten Skripte vom Grundsatz her übernehmen könnt. Detaillierte Anweisungen findet Ihr in der mitgelieferten englischsprachigen Dokumentation. Einen einfachen Einstieg in die passende Konfiguration bietet Euch nach wie vor ein LHA-Archiv [4], das Manfred Tremmel, einigen sicher durch MT-Rechnung bekannt, zusammengestellt hat. Auch wenn das Paket ursprünglich für die Installation von Ghostscript 5.10 gedacht war, greifen Euch die in der 'GSZusatz'-Schublade abgelegten Skripte außerordentlich hilfreich unter die Arme. Da alle Skripte mit einem Icon versehen sind, stehen diverse Ghostscript-Funktionen zur Druck- und Bildschirmausgabe auf Mausklick zur Verfügung.

Lediglich eine Änderung ist in allen Skripten zuvor erforderlich: Die eingetragene Stackgröße reicht für Ghostscript 6.50 nicht mehr aus. Hier solltet Ihr den Wert entsprechend Rüdiger Hankes Empfehlung von 32768 auf 200000 erhöhen.

Sollte wider Erwarten Ghostscript dennoch abstürzen, könnte eine weitere Stackerhöhung für Besserung sorgen.

Die Skript-Dateien lassen sich auch vorzüglich als Vorlage für den eigenen Wünschen angepaßte Steuerungsanweisungen benutzen. Dazu in der nächsten Ausgabe mehr.

Wollt Ihr die Postscript-Dateien vorrangig auf dem Bildschirm betrachten, empfiehlt Rüdiger Hanke die 68k-Version des Interpreters, da der PPC-Port durch die Kontext-Switches deutlich an Performance einbüßt. Interessant für alle Turboprint-Benutzer: Der Dokumentation des Programmpaketes liegt eine Beschreibung für die Ansteuerung des 'turboprint'-Devices bei.

4. Encrypted PDF

Wer diverse Dokumente im PDF-Format mittels Ghostscript oder anderen geeigneten Viewern wie etwa APDF betrachtet, wird hin und wieder auch auf Vertreter stoßen, die sich sehr bedeckt zeigen und von ihrem Inhalt nichts preisgeben wollen. Die Aminet-Versionen sowohl von APDF als auch Ghostscript sind nicht in der Lage, solche verschlüsselten Dateien zu öffnen. Zwar ist es technisch ein Kinderspiel, die Programme mit den entsprechenden Fähigkeiten auszustatten, US-Exportbeschränkungen stehen dem jedoch entgegen.

In anderen Ländern bestehen diese Einschränkungen jedoch nicht, und so ist Abhilfe möglich - ein Grund weniger für Enttäuschung. Auf [5] stellt Geoffrey Keating eine erweiterte 'pdf_sec.ps'-Datei zur Verfügung, die auch die Darstellung solch verschlüsselter PDF-Dokumente ermöglicht. Kopiert die für Ghostscript 4.02 oder höher vorgesehene 'pdf_sec.ps' über die bereits im 'Ghostscript:lib/'-Verzeichnis befindliche. Ab sofort können auch Anleitungen im PDF-Format wie etwa das Cinema4D-XL-Handbuch auf der Heft-CD der AmigaPlus 08/98 oder die AmigaOS-XL-Anleitung unter dem AmigaOS angezeigt und ausgedruckt werden.

[1] http://www.cs.wisc.edu/~ghost/
[2] http://www.muenster.de/~tomjoad/
[3] im Aminet unter /gfx/conv/GS650-xxx.lha
[4] im Aminet unter /gfx/show/GS510-Install.lha und auf Aminet CD 26
[5] http://members.ozemail.com.au/~geoffk/pdfencrypt/


Uwe Pannecke

Workshop: AFPL Ghostscript 6.50 - Teil 2 (von Uwe Pannecke)

Crash-Kurs durch die Ghostscript-Untiefen

1. Der Zug der (Amiga-) Zeit

Obwohl am Ende des ersten Teils in der Februarausgabe 2002 bereits für das nachfolgende März-Magazin dieses Jahres angekündigt, ließ die Fertigstellung der Fortsetzung doch noch einige Monate auf sich warten. Damit reiht sich dieser Workshop in das allgemeine Gebaren rund um den Amiga nahtlos ein und gehört dennoch trotz seiner dreimonatigen Verspätung zu den blitzschnellen Veröffentlichungen auf dem Amiga-Markt... Damit genug der Rechtfertigungsversuche.

Tauchen wir lieber ein in die kryptische, aber dennoch interessante Ghostscript-Welt. Wie bereits im ersten Teil, muss auch für alle nachfolgenden Ausführungen als Versuchskaninchen wieder das Amiga-Release 2 des Interpreters von Rüdiger Hanke [1] herhalten. Wir gehen deshalb davon aus, Ghostscript entsprechend des ersten Teiles installiert in eurem Amiga- System vorzufinden.

2. Jammertal

So leistungsfähig der freie Postscript-Interpreter auch ist, so spröde zeigt er sich in der Bedienung. Keine grafische Oberfläche verwöhnt den Amiganer, Ghostscript besteht auf Tuchfühlung, beinahe hautengen Kontakt über die Kommandozeile. Auch wenn dem Maus-Fetischisten bei dieser Aussicht die Haare zu Berge stehen sollten, kann so doch die Shell wieder einmal ihre Daseinsberechtigung unter Beweis stellen. Und dem Amiganer bietet sich eine gute Gelegenheit, mit dem Traktieren der Tastatur zumindest kurzzeitig Ablenkung finden und seinen Geist über das Jammertal der aktuellen Amiga- Situation erheben zu können.

3. Geborgen in der Muschel

Auch wenn wir den gesamten zweiten Teil des Workshops in der Shell verbringen, lässt sich mit dem dargelegten am Ende des Kurses (vielleicht noch in diesem Jahr ;) ) recht einfach eine mausgesteuerte Bedienung des Interpreters selbst zusammenbasteln.

Doch jetzt ab in die schützende Hülle der Shell:

3.1 Geisterbeschwörung

Mit "CD Ghostscript:" landen wir umgehend im Heimatverzeichnis des Postscript-Interpreters. Bevor wir den dienstbaren Geist aus seiner Flasche entlassen, müssen wir ihm ausreichend Bewegungsfreiheit verschaffen. Die Kommandofolge "Stack 200000" setzt den Stapelspeicher auf die erforderliche Höhe und beugt unvermittelten Abstürzen des Programms vor. Wir bitten Ghostscript mit "gs --help", sich uns vorzustellen.

Neben seinem Namen, der Version und seinen Schöpfern verrät uns der Interpreter einiges über seine Bedienung, indem er uns die prinzipiellen Aufrufoptionen mitteilt. Anschließend kann er es sich nicht verkneifen, mit seinen erstaunlichen Fähigkeiten zu protzen, und teilt uns unter "Available devices" die ihm zur Verfügung stehenden 'Geräte' oder Treiber für die Manipulation der Postscript- oder PDF-Dateien mit.

Eine wichtige Information steckt im unteren Drittel der Fensterausgabe: Mit den Angaben hinter "Search path" informiert uns das Programm, wo es nach Initialisierungsdateien und Schriften für die Interpretation der übergebenen Dateien suchen wird. In der Standard-Installation wird Ghostscript die passenden Daten in den Verzeichnissen "Ghostscript:lib" und "Ghostscript:fonts" finden. Solltet ihr zusätzliche Schriften oder spezielle Initialisierungsdateien in separaten Verzeichnissen abgelegt haben (oder später einmal ablegen), könnt ihr mit "SetEnv GS_LIB Pfadangabe(n)" diese dem Interpreter bekannt machen.

3.2 Dokumentenschau

Eine zentrale Aufgabe Ghostscripts ist die Präsentation von Postscript- und PDF-Dateien. Wollt ihr als Ausgabegerät den Workbench-Bildschirm nutzen, reicht es völlig aus, dem Programm lediglich den Dateinamen einschließlich komplettem Pfad zu übergeben. Im "Examples"-Verzeichnis finden wir eine Reihe gut geeigneter Dateien für unsere Tests.

Die Eingabe "gs examples/tiger.ps" präsentiert nach kurzer Zeit den wohlbekannten Tigerkopf in einem Workbench-Fenster.

Wird wie im gerade angeführten Fall kein Device explizit an Ghostscript übermittelt, verwendet das Programm das "amiga"-Gerät und damit die Workbench als Ausgabemedium. Das gleiche Ergebnis hätte die Eingabe "gs sDEVICE=amiga examples/tiger.ps" verursacht. Und mit letzterem wird auch der Weg aufgezeigt, alle weiteren unterstützen Ausgabegeräte einzubinden. So sorgt etwa "gs sDEVICE=amiga_custom examples/tiger.ps" für die Nutzung eines eigenen Bildschirms, der über einen Bildschirm-Requester aus der vorhandenen Palette ausgewählt werden kann.

Wollt ihr bei der Bildschirmausgabe die Größe des Fensters definieren, stehen euch die Optionen "-dDEVICEWIDTH=Wert1" für die Bildschirmbreite und "-dDEVICEHEIGHT=Wert2" für die Bildschirmhöhe zur Verfügung. Alternativ kann der Schreibfaule auch "-gWert1xWert2" verwenden. Mit "gs sDEVICE=amiga -dDEVICEHEIGHT=640 -dDEVICEWIDTH=480 examples/tiger.ps" etwa ist die maximale Fenstergröße auf der Workbench mit 640x480 Pixel festgelegt. Da die Seitengröße im Dokument nicht automatisch an die Fenstergröße angepasst wird, ist bei Beschränkung der Fenstergröße in vielen Fällen nur noch ein Teil des Seiteninhalts zu sehen. Dem könnt ihr in diesem und ähnlich gelagerten Fällen mit einer Vorgabe zur darzustellenden Auflösung begegnen. Die Option "-dDEVICEXRESOLUTION=WertX" legt die horizontale Geräteauflösung und "-dDEVICEYRESOLUTION=WertY" entsprechend die vertikale Auflösung fest. Wieder haben Schreibfaule Glück: Die Optionen lassen sich mit "-rWertXxWertY" deutlich abgekürzt gleichberechtigt verwenden. Wird lediglich mit einem Wert die Auflösung bestimmt, bleiben auf jeden Fall die Proportionen der ursprünglichen Seite erhalten.

Mit entsprechend gewählten Werten könnt ihr natürlich auch die Seitenproportionen nach euren Wünschen beinahe beliebig verzerren. Dies gilt gleichermaßen für die Druckausgabe.

Apropos Druckausgabe: Wer die Datei lieber Schwarz auf Weiß oder gar farbig in den Händen halten möchte, kann aus einer ganzen Reihe von Druckgeräten auswählen. Da wäre zuallererst das Device "amiga_printer" zu nennen, das für eine Ausgabe über den eingestellten Workbench-Druckertreiber zuständig ist. Darüber hinaus stehen diverse Laser- und Deskjet-Treiber als dienstbare Gerätetreiber parat. Und alle Turboprint-Freunde werden sich über einen eigens für das Druckprogramm mitgelieferten Treiber einschließlich Dokumentation freuen.

4. Eine endlose Geschichte

Im nächsten Teil, diesmal tatsächlich auch in der nächsten AMIGA-aktuell- Ausgabe, wenden wir uns u.a. den Konvertierungsmöglichkeiten des Interpreters zu.

[1] im Aminet unter /gfx/conv/GS650-xxx.lha

Uwe Pannecke


Workshop: AFPL Ghostscript 6.50 - Teil 3 (von Uwe Pannecke)

Crash-Kurs durch die Ghostscript-Untiefen

1. Dokumentenschau

Bleiben wir zu Beginn unseres dritten Teils noch ein wenig bei der Anzeige von Postscript- und PDF-Dokumenten.
1.1 DOpus - des geisterhaften Interpreters Freund

Bisher haben wir uns vorrangig über die Shell mit Ghostscript verständigt. Das wird auch im Wesentlichen für den grundsätzlichen Einstieg in den Umgang mit dem Programm so bleiben. Doch sollen im alltäglichen Einsatz PS- und PDF-Dateien möglichst schnell und aufwandsarm auf dem Bildschirm gezaubert werden, bietet sich die Einbindung des Interpreters in Dateimanager wie etwa Directory Opus an.

Nachfolgend ein Beispiel für die DOpus-Konfiguration zur Anzeige von PS- Dateien. Sinngemäß könnt ihr die Ausführungen selbstverständlich ebenso auf die Anzeige von PDF-Dokumenten übertragen. Startet also DOpus und wählt im Menü den Abschnitt "Einstellungen" und dort den Unterpunkt "Dateitypen...".

In selbigem definieren wir nun einen passenden Dateityp "Postscript", der DOpus in die Lage versetzten wird, bei Doppelklick auf eine PS-Datei automatisch Ghostscript mit der Anzeige der Datei zu beauftragen. Also klickt auf den Button "Add".

Sogleich öffnen sich zwei Fenster. Wir wenden uns dem Dateityp-Fenster zu, erkennbar an der oberen Zeile mit den Einträgen "Namen", "ID" und "PRI". In das Feld hinter "Name" tragt ihr eine aussagekräftige Bezeichnung, unter der der Dateityp aufgelistet werden soll, ein. Angemessen ist sicherlich "Postscript". Hinter "ID" tippt ihr "PS" ein und "Pri" bleibt auf der Vorgabe "0". Wichtig ist nun, DOpus mitzuteilen, woran der Dateimanager erkennen soll, dass es sich um eine Postscript-Datei handelt. Wählt mit einem Klick auf das Schubladen-Symbol den Eintrag "Match Name" aus und fügt in der Zeile die charakteristische Dateiendung mit dem Eintrag "#?.ps" hinzu. Ein Klick auf "Use" schließt die Definition ab.

Übrig bleibt nun noch das Ereignis-Fenster, in dem ihr festlegt, was DOpus bei einer bestimmten Aktion mit der angewählten Datei machen soll. Wir haken "Doubleclick" ab und wählen anschließend den Button "Edit". Im sich daraufhin öffnenden Fenster veranlassen wir in zwei Zeilen die Anlage eines ausreichenden Stapelspeichers für den Interpreter und übergeben Ghostscript mit "{f}" die später im Dateilister ausgewählte Datei. Zusätzlich haken wir die Option "Output to window" ab und veranlassen so Ghostscript, das Anzeige-Fenster so lange offen zu lassen, bis wir es explizit schließen.

Mit drei letzten Mausklicks auf "Use", noch einmal "Use" und "Save" ist die Konfiguration abgeschlossen.

1.2 Zeig mir deine Schokoladenseiten

Zwischenzeitlich werden die Ghostscript-Freunde unter euch vielleicht schon diverse PDF-Dokumente betrachtet oder auch gedruckt haben. Nicht immer möchte man den kompletten Umfang des Dokuments nutzen. Sollen von solch einer Datei nur bestimmte Seiten angezeigt oder zu Papier gebracht werden, kann Ghostscript selbstverständlich die entsprechende Auswahl vornehmen. Die passenden Aufrufoptionen sind in diesem Fall "-dFirstPage=AnfangsSeitennummer" und "-dLastPage=EndSeitennummer". Wie ihr sicher schon während ersten Experimenten bei der Ghostscript- Nutzung bemerkt habt, besteht das Programm Amiga-unüblich (dafür aber Unix/Linux-typisch) auf eine peinlich genaue Beachtung der Groß- und Kleinschreibung in der Syntax.

2. Eine Bildershow mit Ghostscript

Ghostscript kann nicht nur mit PS- und PDF-Dokumenten umgehen. Ebenso ist der Interpreter in der Lage, Bilder im GIF-, JPEG-, PBM-, PCX- und CMYK- Format direkt ohne vorherige Konvertierung auf dem Bildschirm auszugeben. In solchen Fällen bedient sich der Interpreter der im Ghostscript-eigenen "Libs"-Verzeichnis abgelegten Hilfsprogramme "viewgif.ps", "viewjpeg.ps", "viewpbm.ps", "viewjpeg.ps", "viewpcx.ps" und "viewcmyk.ps".

Die entsprechende Syntax der Befehle werden wir uns mit der Anzeige eines JPEG-Bilds verdeutlichen. Sinngemäß sind die restlichen unterstützten Formate zu handhaben. Wir begeben uns also wieder in die Shell, beamen uns mittels "cd Ghostscript:" in das Interpreter-Verzeichnis und setzen mit "stack 200000" den Stapelspeicher auf eine ausreichende Höhe. Anschließend starten wir Ghostscript und übergeben dem Programm dabei mit "gs viewjpeg.ps" eine PS-Hilfsdatei, die den Interpreter in die Lage versetzt, das entsprechende Bildformat anzuzeigen.

Die eigentliche Bildschirmpräsentation erfolgt im interaktiven Dialog mit dem Interpreter durch den Aufruf "(Bildname.jpg) viewJPEG".

Analog könnt ihr mit allen unterstützen Bildformaten verfahren, beachtet dabei wieder wie gehabt die korrekte Groß- und Kleinschreibung, also beispielsweise "(Bildname.gif) viewGIF".

3. Konvertieren, bis der Prozessor glüht

Eine weitere interessante Seite des Postscript-Interpreters ist seine Fähigkeit, bestimmte Dateiformate ineinander umwandeln zu können. Nachfolgend einige Möglichkeiten zur Anregung für eigene Experimente:

3.1 Adobe Illustrator

Wer seine PS-Dateien in das Grafikformat "AI" des Adobe Illustrator umwandeln möchte, bedient sich des Hilfsprogramms "ps2ai.ps", zu finden wiederum im "libs"-Verzeichnis.

Wir wollen im Zusammenspiel von "ps2ai.ps" und Ghostscript den allseits bekannten Tiger aus der "Examples"-Schublade in eine Adobe Illustrator- Datei transformieren. Da die Kommandofolge "gs ps2ai.ps zu_konvertierende_Datei.ps" lediglich das Konvertierungsergebnis in der Shell ausgeben würde, leiten wir mit ">RAM:neue_Datei.ai" die Ausgabe in die Datei "neue_Datei.ai" in der RAM- Disk um. Selbstverständlich kann für die Ausgabeumleitung anstelle der RAM- Disk auch ein beliebiges Verzeichnis auf der/den Amiga-Festplatte(n) benutzt werden.

Für unser konkretes Beispiel lautet so der komplette Aufruf "gs >RAM:Tiger.ai ps2ai.ps examples/tiger.ps".

Mehr oder weniger kurze Zeit nach ihrem Postscript-Absprung ist die Großkatze als AI-Tiger gelandet, zumindest fast: Da AFPL Ghostscript in den ersten vier Zeilen der AI-Dateien Hinweise zu sich selbst und den verwendeten Fonts ohne Voranstellung der Kommentareinleitung "%%" vermerkte, mussten diese Zeilen in einem Texteditor entweder zuvor entfernt oder der Anfang jeder Zeile mit "%%" versehen werden, bevor Adobe Illustrator die AI-Datei als solche akzeptierte.

3.2 In der Destille

Hier soll es nicht um hochprozentige, mehr oder wenig gut schmeckende Flüssigkeiten gehen, vielmehr versetzen wir den Interpreter in die Lage, Postscript-Dateien in das PDF-Format zu wandeln. Und hier kommt auch gleich ein großer Vorteil der aktuellen Version 6.50 gegenüber der alten 5.10 zum tragen: Fonts können als solche in einem zu erstellenden PDF-Dokument eingebettet werden.

Ghostscript 5.10 und auch andere PDF-erstellende Programme auf dem Amiga wandeln diese Fonts zumeist in Bitmaps um. Dies bläht die erstellte PDF- Datei erheblich auf und sorgt außerdem für eine sehr bescheidene Schriftqualität. Ghostscript 6.50 kann diese Klippe bei der Umwandlung der meisten Postscript-Dateien elegant umschiffen.

Wieder soll ein Beispiel die Vorgehensweise demonstrieren: In der RAM-Disk liegt die Postscript-Datei "shell.ps", über das Device "pdfwrite" wird diese nach PDF gewandelt und als "shell.pdf" erneut in der RAM-Disk abgelegt.

Da Ghostscript bei der interaktiven Bearbeitung nach jeder konvertierten Seite auf eine Bestätigung für die Bearbeitung der nachfolgenden Seite wartet, könnt ihr bei umfangreichen Dokumenten den Interpreter mit dem Kommando "-dNOPAUSE" überreden, alle Seiten in einem Rutsch zu bearbeiten. Soll sich Ghostscript nach getaner Arbeit selbständig beenden, hilft der Schalter "-dBATCH".

3.3 Von PDF nach Postscript

Was zumeist mit sehr brauchbaren Ergebnissen von PS nach PDF funktioniert, gelingt ebenso in der Konvertierung von PDF nach Postscript. Die Vorgehensweise entspricht der der PS-nach-PDF-Konvertierung, nur dass diesmal das Device "pswrite" zum Zuge kommt. Aus einem 18seitigen Folien- Satz zur Knoppix-CD [2] sollen in unserem Fall lediglich die Seiten 17 und 18 ins Postscript-Format umgesetzt werden, deshalb erzwingt der Schalter "-dFirstpage=17" die Ignorierung der ersten 16 Seiten.

Die in den PDF-Dokumenten eventuell vorhandenen interaktiven Links könnt ihr in dem erstellen PS-Dokument, obwohl abgebildet, prinzipbedingt natürlich nicht mehr nutzen. Dafür steht einem "Durch"-Blättern des Dokuments nichts im Wege.

4. Und tschüs

So, jetzt habt ihr genug Material, um intensiv mit Ghostscript spielen und die Zeit bis zum nächsten Teil überbrücken zu können. :) Wenn alles wie geplant verläuft, schauen wir uns dann das Extrahieren von Inhaltsbestandteilen, wie Textpassagen und Bilder, aus PDF-Dateien und das Drucken der PS- und PDF-Dokumente ein wenig näher an.

[1] im Aminet unter /gfx/conv/GS650-***.lha
[2] http://www.knopper.net

Uwe Pannecke


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.

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

Ab sofort wartet die PDF-Ausgabe in FinalWriter unter dem Menü-Abschnitt "User" auf ihren Einsatz.

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.

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.

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-***.lha
[2] im Aminet unter /util/rexx/Convert_to_PDF.lha

Uwe Pannecke