postscript Tutorial
Erste Schritte mit Postscript
Suche…
Bemerkungen
PostScript ist eine Reverse-Polish-Stack-basierte, dynamisch typisierte, dynamische Namensraum-Skriptsprache mit integrierten Grundelementen zum Generieren gerenderter Bilder aus Vektorbeschreibungen. PostScript verwendet dasselbe "Adobe Image Model" wie das PDF-Dateiformat.
PostScript wird von vielen Programmen als Ausgabeformat verwendet, da es einfach maschinell erstellt werden kann.
Wie LISP ist PostScript homoikonisch, und Code und Daten haben dieselbe Darstellung. Prozeduren können Prozeduren als Daten und Ergebnisprozeduren als Ergebnisse verwenden, was sich auch für Techniken der konkatenativen Programmierung eignet.
Installation oder Setup
Die authentischen Adobe PostScript-Interpreter sind in High-End-Druckern, dem Produkt Display PostScript (DPS) und dem Produkt Acrobat Distiller verfügbar. Als Hersteller des Standards werden diese Produkte als "Standardimplementierung" betrachtet, um Unterschiede zwischen PostScript-Implementierungen zu beschreiben.
Die im PLRM definierte Standardschnittstelle für den Interpreter ist der Programmstrom, der je nach den Details des zugrunde liegenden Kanals oder des Betriebssystems / Controllers entweder Text oder binär sein kann. Acrobat Distiller verfügt über ein GUI-Frontend, um das Eingabe-Postscript-Programm auszuwählen und seine Ausgabe als PDF-Datei darzustellen. Distiller bietet auch eine begrenzte Unterstützung für die Verwendung des Ausgabetextstroms zum Melden von Fehlern und anderen Programmausgaben. GSView bietet ein ähnliches GUI-Frontend für einen ähnlichen Workflow mit Ghostscript als Interpreter.
Ghostscript und Xpost arbeiten beide in einem Befehlszeilenmodus. Die Postscript-Programmdatei, die ausgeführt werden soll, kann in der Befehlszeile ( gs program.ps
xpost program.ps
oder xpost program.ps
) angegeben werden, die ein Grafikfenster öffnet, in dem die grafische Ausgabe angezeigt wird. Optionen können verwendet werden, um die Grafiken an anderer Stelle wie eine Festplattendatei darzustellen oder die Grafiken vollständig zu unterdrücken und Postscript nur als Skriptsprache zu verwenden.
Die verschiedenen Dolmetscher haben jeweils eigene Installations- und Setupanweisungen, und es wäre verschwenderisch (und dazu neigen, nicht mehr aktuell zu sein), sie hier zu reproduzieren.
Frei verfügbare PostScript-Interpreter
Ghostscript ist für alle gängigen Plattformen und Linux-Distributionen in Quell- oder Binärform, unter der GNU-Lizenz oder unter anderen Lizenzvereinbarungen mit den Autoren, Artifex-Software , verfügbar . Ghostscript implementiert den vollständigen PostScript 3-Standard.
Xpost ist in Quellform für alle gängigen Plattformen unter der BSD-3-Klausel-Lizenz verfügbar. Es implementiert den Level-1-Standard mit einigen Level-2-Erweiterungen und einigen DPS-Erweiterungen.
Allgemeine Beschreibung von PostScript
PostScript ist eine allgemeine Programmiersprache für Turing, die von Adobe Systems entwickelt und entwickelt wurde. Viele der Ideen, die in PostScript aufblühten, waren in Projekten für Xerox und Evans & Sutherland entwickelt worden.
Seine Hauptanwendung in der realen Welt ist historisch eine Seitenbeschreibungssprache oder in ihrem einseitigen EPS eine Vektorgrafik-Bildbeschreibungssprache. Es ist dynamisch typisiert, dynamisch und stapelbasiert, was zu einer meist polnischen umgekehrten Syntax führt.
Es gibt drei Hauptversionen von PostScript.
- PostScript Level 1 - wurde 1984 als residentes Betriebssystem des LaserWriter-Laserdruckers von Apple auf den Markt gebracht und eröffnet damit die Ära des Desktop Publishing.
- PostScript Level 2 - veröffentlicht im Jahr 1991, enthielt mehrere wichtige Verbesserungen von Level 1, einschließlich Unterstützung für die Dekomprimierung von Bildern, In-RIP-Trennung, automatisch wachsende Wörterbücher, Speicherbereinigung, benannte Ressourcen und binäre Kodierungen des PostScript-Programmstroms.
- PostScript 3 - die neueste und vielleicht am weitesten verbreitete Version wurde 1997 veröffentlicht. Sie enthält auch einige Verbesserungen des Imports gegenüber Level 2, wie beispielsweise Smooth Shading. Der Begriff „Ebene“ wurde gestrichen.
Obwohl PostScript normalerweise als Seitenbeschreibungssprache verwendet wird und daher in vielen Druckern zum Erzeugen von Rasterbildern implementiert ist, kann es auch für andere Zwecke verwendet werden. Als schneller Reverse-Polish-Rechner mit mehr einprägsamen Namen als bc
. Als Ausgabeformat, das von einem anderen Programm generiert wurde (normalerweise in einer anderen Sprache).
Zwar handelt es sich bei PostScript-Dateien normalerweise um 7-Bit-Bereinigungs-ASCII-Dateien, jedoch gibt es verschiedene Arten von Binärkodierungen, die im Standard der Ebene 2 beschrieben werden. Und weil es programmierbar ist, kann ein Programm sein eigenes willkürlich komplexes Codierschema für sich selbst implementieren. Es gibt einen internationalen verschleierten Postscript-Wettbewerb, etwas weniger aktiv als der C-Wettbewerb.
Online-Referenzen
Indexseiten der Adobe-Dokumentation:
https://www.adobe.com/products/postscript/resources.html
http://www.adobe.com/devnet/postscript.html
http://www.adobe.com/devnet/font.htmlPostScript-Referenzhandbuch, 3ed - Der PostScript 3-Standard. (7.41MB pdf)
( Ergänzung , Errata )PostScript-Referenzhandbuch, 2ed - Der PostScript Level 2-Standard. (Enthält die PostScript-Dokumentation.) (3.29MB pdf)
Postscript Tutorial und Kochbuch - Das blaue Buch. (847KB pdf)
Postscript Language Program Design - Das grüne Buch. (911KB pdf)
Denken in Postscript - Vom Autor des grünen Buches und des Tutorials des blauen Buches. (826KB pdf)
Strukturierungskonventionen für PostScript-Dokumente Spezifikation 3.0 (521KB pdf)
Adobe Type 1-Schriftformat (444 KB, pdf)
Encapsulated PostScript File Format-Spezifikation 3.0 (185KB pdf)
Postscript Printer Description File Format Specification 4.3 (186KB pdf) ( Aktualisierung )
Fehlerbehebung bei PostScript-Fehlern - Tipps zur Fehlersuche . (158 KB HTML)
Acumen Journal - Archiv von Postscript- und PDF-Programmierartikeln. (html-Verzeichnis der gezippten pdfs)
Mathematische Illustrationen: Ein Handbuch der Geometrie und Postscript - von Bill Casselman. (HTML-Verzeichnis der PDF-Kapitel und Code-Downloads)
Thread mit vielen Sortieralgorithmus-Implementierungen (Usenet-Archiv)
Don Lancasters Guru-Seiten
Anastigmatix's Direkter Gebrauch der Postscript-Sprache
Schrittweiser Open-Source- Debugger für Postscript-Code
FAQs
Bücher
Postscript-Referenzhandbuch für Sprachen, 1ed, 1985. Empfohlen aufgrund der geringen Größe und des einfachen Bedienerindex auf der Zusammenfassungsseite (fehlt in späteren Ausgaben).
Postscript der realen Welt. Kapitel verschiedener Autoren zu verschiedenen Themen, einschließlich exzellenter Berichterstattung über Halbtoneffekte.
Lokale Namespaces für Funktionen
Postscript ist eine Sprache für dynamischen Namespace oder LISP 1 . Es bietet jedoch die Werkzeuge zum Implementieren lokaler Variablen in Prozeduren und andere Effekte, die zur Implementierung von Algorithmen erforderlich sind.
Erstellen Sie für lokale Namen in einer Prozedur am Anfang ein neues Wörterbuch, und platzieren Sie es am Ende.
/myproc {
10 dict begin
%... useful code ...
end
} def
Sie können dies auch gut mit einer Verknüpfung kombinieren, um die Argumente der Funktion als Variablen zu definieren.
% a b c myproc result
/myproc {
10 dict begin
{/c /b /a} {exch def} forall
%... useful code yielding result ...
end
} def
Wenn Sie eine * "globale" * - Variable aktualisieren müssen, während das lokale Wörterbuch oben ist, verwenden Sie store
anstelle von def
.
Hallo Weltbeispiel
Wählen Sie eine Schrift und Schriftgröße aus, wählen Sie den Ort aus, show
String an.
%!PS
/Palatino-Roman 20 selectfont
300 400 moveto
(Hello, World!) show
showpage
Anmerkungen und häufige Fallstricke:
Festlegen einer Schriftart (führt zu keinem Text oder einer (hässlichen) Standardschriftart)
Verwenden Sie
findfont
undsetfont
, vergessensetfont
jedoch nicht, zwischen densetfont
zuscalefont
. Durch dieselectfont
des Level-2-selectfont
dieses Problem vermieden und es wirdselectfont
.Einen Punkt nicht mit
moveto
oder den Punkt außerhalb der Seite setzen. Für US-Briefpapier ist 8.5x11 792x612 ps Punkte. Es ist also leicht, sich an 800x600 zu erinnern (aber ein bisschen kürzer und breiter). So ist300 400
ungefähr die Mitte der Seite (wenig hoch, wenig links).Vergessen, die
showpage
. Wenn Sie ein ps-Programm mitgs
in dershowpage
anzeigen und nicht mit dershowpage
, zeigtgs
möglicherweise ein Bild an. Und dennoch wird die Datei auf mysteriöse Weise keine Ausgabe erzeugen, wenn Sie versuchen, in PDF oder etwas anderes zu konvertieren.
Lehrplan
Lesen Sie die Dokumentation in dieser Reihenfolge, um das Postscript leicht zu erlernen:
Paul Bourkes hervorragendes Tutorial: http://paulbourke.net/dataformats/postscript/
Blue Book, erste Hälfte, das ursprüngliche offizielle Tutorial:
http://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDFGreen Book, wie man Postscript effektiv einsetzt:
http://www-cdf.fnal.gov/offline/PostScript/GREENBK.PDFDenken in Postscript ', sagte Nuff: http://wwwcdf.pd.infn.it/localdoc/tips.pdf
Mathematische Illustrationen . Fange klein an, baue groß. Die Mathematik hinter Bezier Curves. Der Hodgman-Sutherland-Polygon-Ausschnittsalgorithmus. Affine Transformationen und nichtlineare Transformationen des Pfads. 3D-Zeichnung und Gouraud-Schattierung. Aus dem Vorwort:
Welche der vielen Werkzeuge, mit denen man mathematische Grafiken erstellen kann, zu wählen ist, scheint offensichtlich ein Kompromiss zwischen Einfachheit und Qualität zu sein, wobei die meisten sich für das halten, was sie als Einfachheit empfinden. Die Wahrheit ist, dass ein Kompromiss nicht notwendig ist - wenn man erst einmal eine kleine Anfangsanstrengung getätigt hat, ist es bei weitem das Beste, ein Programm in der Grafikprogrammiersprache PostScript zu schreiben. Die Qualität der Ausgabe eines PostScript-Programms ist praktisch unbegrenzt, und mit zunehmender Erfahrung nehmen die Schwierigkeiten bei der Verwendung der Sprache rapide ab. Die scheinbare Komplexität, die mit der Erstellung einfacher Zahlen durch das Programmieren in PostScript verbunden ist, wie ich hoffe, dass dieses Buch zeigen wird, ist weitgehend eine Illusion. Und der Aufwand für die Herstellung komplizierterer Figuren ist in der Regel weder höher noch geringer als notwendig.