Uni ZH
Informatikdienste
PostScript-Corner
Einführung (pdf)
Abfrage Operatoren (cgi)
einfache Beispiele
1. Typische Fehlersituationen
2. Wichtige PostScript- Fehlermeldungen
|
PostScript-Fehlermeldungen
Typical PostScript errors (in German).
Die Beratungserfahrung zeigt, dass folgende Fehlersituationen häufig vorkommen:
- Es passiert gar nichts!
- Mit dem %-Zeichen wird ein PostScript-Kommentar eingeleitet. Alle Zeichen bis zum Zeilenende werden dann vom PostScript-Interpreter als Kommentar angesehen und nicht mehr beachtet. Beispiel:
"%!PS-Adobe-..."
Falls die Code-Zeilen nicht mit Newline (\n) und/oder Return (\r) abgeschlossen sind, führt dies dazu, dass das gesamte PostScript-Programm als ein riesiger Kommentar interpretiert wird!
Was tun, wenn der Drucker weder Fehlermeldung noch Ausdruck liefert? Neben dem riesigen Kommentar gibt es noch eine andere Ursache: der fehlende showpage-Operator.
Fügen Sie diesen Befehl notfalls an!
- Der Drucker spuckt lediglich ein weisses Blatt aus.
- Häufig liegt der Fehler darin, dass eine Grafik ausserhalb
des Druckbereichs
liegt, z.B. im negativen Bereich, sodass der Drucker lediglich ein weisses Blatt ausspuckt. In diesem Fall können Sie versuchen, die Abbildung mittels translate wieder in den Druckbereich zu verschieben ("x y translate" vor der Seitenbeschreibung einfügen).
- Fehlende Fonts:
- Denken Sie daran, dass die aufgerufenen PostScript-Fonts entweder auf Ihrem Drucker installiert sein oder aber auf diesen zugeladen werden müssen. Die Erfahrung zeigt, dass fehlende Fonts zum Stolperstein werden können; eine bekannte Fehlermeldung lautet "Font not found, using Courier".
- Eine importierte Abbildung führt zu einer Fehlermeldung.
- Beim Importieren eines EPS-Files ist zu beachten, dass ein EPS-File neben dem PostScript-Programm manchmal eine Bildschirmdarstellung enthält. Das Problem dabei ist, dass die Bildschirmdarstellung plattformabhängig ist. Es ist daher nicht möglich, auf einer Unix-Workstation eine Bildschirmdarstellung zu importieren, die auf einem Macintosh oder unter MS-Windows erzeugt wurde. Schneiden Sie die Bildschirmdarstellung aus dem EPS-File heraus!
GOTO PostScript-to-EPS.
- Die Umlaute werden nicht richtig dargestellt.
- Um die Umlaute richtig drucken zu können, muss der
PostScript-Prolog einen sogenannten
Encoding-Vektor definieren, der den
Symbolen numerische Codes zuordnet.
Leider ist diese Zuordnung von der Plattform abhängig, z.B. ISO Latin-1 auf vielen Unix-Systemen, aber Codepage IBM-850 unter AIX. Achten Sie daher darauf, auf welcher Plattform ein PostScript-Programm erzeugt wurde!
- "Operator undefined"
- Einige End-User wissen nicht, welche Drucker mit
PostScript Level 2
bzw. Level 1 bestückt sind. Fehlermeldungen wegen selectfont, rectfill,
xyshow, makepattern, execform, colorimage, etc.
deuten darauf hin, dass ein Gerät nicht in der Lage ist, PostScript Level 2 zu verarbeiten. Es gibt zwei Möglichkeiten: suchen Sie einen Level-2-Drucker oder emulieren Sie die neuen Operatoren mittels Level-1-Befehle.
Die Sequenz moveto-rlineto-rlineto-rlineto-closepath wird in PostScript
Level 1 sehr häufig verwendet,
um den neuen Operator rectstroke zu emulieren.
Für die Undefined-Situation gibt es aber noch eine andere Ursache:
Applikationen wie MS Word oder Adobe Illustrator verwenden einen eigenen
Prolog, der "PostScript-Makros" vordefiniert. Ueberprüfen Sie,
ob dieser Prolog im PostScript-File vorhanden ist!
- limitcheck:
- Diese Meldung bedeutet, dass eine Implementations-abhängige Beschränkung überschritten wurde. Ursache kann etwa ein sehr langer Polygon-Zug sein, der aus Hunderten von lineto's besteht. Geographen, die Grenzverläufe zeichnen möchten, können ein Lied davon singen. Abhilfe: Fügen Sie z.B. nach 100 lineto's jeweils ein stroke ein.
Daneben gibt es noch Design-Fehler in den PostScript-Treibern,
die sich etwa dadurch äussern, dass der Ausdruck
von einzelnen Seiten scheitert.
Diese Druckfiles enthalten in einer Seitenbeschreibung
Font- oder Prozedur-Definitionen, welche auf anderen Seiten
benötigt werden.
Falls nun einzelne Seiten ausserhalb der Reihenfolge
belichtet werden, sind solche Font- oder Prozedur-Definitionen
unbestimmt (undefined).
Es wäre einfach,
die fraglichen Fonts oder Definitionen in den Prolog zu verschieben,
um diese Fehlersituation zu beheben.
Voraussetzung ist allerdings, dass
man die Struktur des PostScript-Programms kennt.
Aehnlich verheerend ist es, wenn gewisse PostScript-Treiber (Windows)
das Erzeugen von mehrseitigen EPS-Files unterstützen.
Denn EPS-Files beschreiben einzelne Logos, Grafiken und Illustrationen
und dienen
dazu, von anderen Dokumenten eingebettet zu werden.
Aber wie auf einer bestimmten Seite eine mehrseitige Illustration einbetten?
Folgende Fehlermeldungen kommen häufig vor:
- dictfull
- Dictionary ist voll
- dictstackoverflow
- zu viele begins
- dictstackundeflow
- zu viele ends
- invalidaccess
- ein Zugriffsrecht verletzt (e.g. attempted to write a read-only object)
- invalidfont
- falscher Font-Name oder Dictionary
- ioerror
- Fehler während Datenübertragung
- limitcheck
- eine Implementations-abhängige Beschränkung wurde überschritten
- nocurrentpoint
- die aktuelle Position
ist noch nicht definiert
- rangecheck
- Operand ist zu gross oder zu klein
- stackoverflow
- Stack ist voll vor dem letzten push
- stackundeflow
- Versuch eines pop bei
einem leeren Stack
- syntaxerror
- PostScript-Syntax verletzt
- typecheck
- Operand hat den falschen Typ
- undefined
- Name ist in keinem Dictionary auf dem Stack definiert
- VMerror
- Virtual Memory ist voll
- configurationerror
- setpagedevice (Level 2) kann nicht befriedigt werden
GOTO PostScript-Operatoren.
|