Postscript madness

Postscript madness

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

A897b36b388796219fe140ad31101ce9?s=128

Marek Kubica

August 19, 2010
Tweet

Transcript

  1. Postscript madness Leonidas <leonidas@muc.ccc.de> µC3 19. August 2010 This work

    is licensed under the Creative Commons Attribution 3.0 License. Leonidas <leonidas@muc.ccc.de> Postscript madness
  2. Disclaimer: Leonidas <leonidas@muc.ccc.de> Postscript madness

  3. Disclaimer:I’m mad Leonidas <leonidas@muc.ccc.de> Postscript madness

  4. Warum PostScript PostScript ist überall dein Drucker dein CUPS deine

    Type1 Fonts Leonidas <leonidas@muc.ccc.de> Postscript madness
  5. Warum PostScript PostScript ist überall dein Drucker dein CUPS deine

    Type1 Fonts deine Mutter! Leonidas <leonidas@muc.ccc.de> Postscript madness
  6. 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 <leonidas@muc.ccc.de> Postscript madness
  7. 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 <leonidas@muc.ccc.de> Postscript madness
  8. 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 <leonidas@muc.ccc.de> Postscript madness
  9. 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 <leonidas@muc.ccc.de> Postscript madness
  10. 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 <leonidas@muc.ccc.de> Postscript madness
  11. 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 <leonidas@muc.ccc.de> Postscript madness
  12. 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 <leonidas@muc.ccc.de> Postscript madness
  13. Demo: Rekursion Leonidas <leonidas@muc.ccc.de> Postscript madness

  14. Demo: Koch Leonidas <leonidas@muc.ccc.de> Postscript madness

  15. Demo: Daumenkino Leonidas <leonidas@muc.ccc.de> Postscript madness

  16. 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 <leonidas@muc.ccc.de> Postscript madness