My Journey to PostScript
In June 2023, I started to write an interpreter for PostScript, a rather surprising low level language. This blog tells the story of the adventure. The result is a web app in Javascript that can render a subset of PlostScript to PNG, SVG and PDF.
Gallery some graphic experimentations
TinyPS what the interpreter can do and how you can install ist
Sandbox play with the interpreter
Exercices programming exercises
Professor Brailsford demonstrates in this short video the basic concepts of Postscript as a programming language.
https://www.youtube.com/watch?v=S_NXz7I5dQc&t=779s
Donald E. Knuth on fonts
https://www.youtube.com/watch?v=_rRTZoGiFNU
Book project
- My own newspaper - How I got into typography
- Engineering - my girlfriend had an HP calculator
- Mac Laserwriter PageMaker - how I got into computers
- 4 3 add 2 mul - PostScript as a programming language
- Sidenote - a simple Javascript console
- Dictionary - defining new operators
- If then else - control structures
- (Strings) and arrays
- Sidenote - unit test
- We need to talk about garbage collection
- Preparing the white page
- 100 100 moveto 200 300 lineto stroke
- The scanfill algorithm
- Bezier curves
- Rethinking stroke
- Scale rotate translate - Transform the user space
- Implementing Transform
- Fixing scanFill overboarding
- Get locality with graphics and dictionary stack
- Working with fonts
- 100 100 moveto (Hello World) show
- Exploring our font library
- A bug in the stroke algorithm
- Get font outlines
- Align left, center, right and justify text
- A first attempt to wrap paragraphs
- Oversampling
- Render to HTML canvas and to PNG
- Render PostScript to SVG
- Render PostScript to PDF
- SVG as text experiments
- Parsing a TrueType font
- Perfecting TrueType parsing
- Composite glyphs
- Including TrueType to the codebase
- Text mode second try
- Text mode PDF
- Colors and transparency
- Transparency does not work with Stroke
- Textbook exercices
- Zero winding vs. even odd rule
- Implementing zero winding
- Clipping
- Multiple pages
- Adding images
- Melting dots - Raster algorithm
- Back to paper with a plotter
- Back to analog linocut printing