Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Postscript madness

Postscript madness

Some introduction into PostScript, presented at µC³ in Munich

Marek Kubica

August 19, 2010
Tweet

More Decks by Marek Kubica

Other Decks in Programming

Transcript

  1. Postscript madness Leonidas <[email protected]> µC3 19. August 2010 This work

    is licensed under the Creative Commons Attribution 3.0 License. Leonidas <[email protected]> Postscript madness
  2. Warum PostScript PostScript ist überall dein Drucker dein CUPS deine

    Type1 Fonts deine Mutter! Leonidas <[email protected]> Postscript madness
  3. Warum PostScript PostScript ist überall dein Drucker dein CUPS deine

    Type1 Fonts deine Mutter! Über PostScript von Adobe anno dazumal für Drucker entworfen stackbasiert wie viele VMs, etwa JVM man programmiert indem man „Wörter“ auf den Stack wirft Referenz und viele Bücher verfügbar Leonidas <[email protected]> Postscript madness
  4. PostScript nutzen Software Adobe Acrobat (proprietär) GhostScript (GPLv3+) Poppler (GPLv2+)

    Hardware KPDL 2 & 3 (Kyocera) PhoenixPage, OakPage (HP) Brotherscript (Brother) PageStyler TrueImage TurboPS Leonidas <[email protected]> Postscript madness
  5. Ein einfaches Beispiel 1 2 add pstack pstack zeigt Stackinhalt

    an pop wirft obersten Wert auf dem Stack weg clear leert Stack exch vertauscht die beiden obersten Werte dup dupliziert den obersten Wert Leonidas <[email protected]> Postscript madness
  6. Eigene Wörter definieren /2dup { dup 2 index exch }

    def Definiert ein Wort, das die obersten 2 Werte dupliziert 23 42 2dup pstack Parameter: Auf dem Stack, beliebig viele Rückgabewerte: Auf dem Stack, beliebig viele Leonidas <[email protected]> Postscript madness
  7. Datenstrukturen Zahlen 1.337 (Strings sind in runden Klammern) { (in)

    (executable) (Arrays) (kann) (beliebiges) (stehen) 42 } [(in) (literate) (Arrays) (auch) 23 ] Dictionaries % Kommentar { 3 2 add } [ 3 2 add ] Leonidas <[email protected]> Postscript madness
  8. Grafikausgabe Konzept: Zeichenfläche mit Stift moveto Stift an bestimmte Stelle

    setzen rmoveto Stift relativ zur aktuellen Stelle verschieben lineto Pfad von aktuellem Punkt zu Endpunkt setzen rlineto Äquivalent zu rmoveto stroke aktuellen Pfad zeichnen gsave aktuellen Grafikkontext abspeichern grestore vorherigen Grafikkontext laden scale Skalieren, in X und Y-Richtung rotate Rotieren Leonidas <[email protected]> Postscript madness
  9. Textausgabe PostScript-Interpreter bringen einige Fonts mit. 300 200 t r

    a n s l a t e 0 0 moveto /Times−Roman f i n d f o n t 25 s c a l e f o n t s e t f o n t ( A l l h a i l E r i s ! ) show Leonidas <[email protected]> Postscript madness
  10. Ressourcen Bücher PostScript Language Reference, third edition PostScript Language Tutorial

    and Cookbook Thinking in PostScript Alle frei (wie Bier) verfügbar Webseiten http://www.tailrecursive.org/postscript/ KTHXBAI! Leonidas <[email protected]> Postscript madness