A First Guide to PostScript

This is the fifth edition of the First Guide to PostScript. It differs from the previous editions in that a number of errors which people have brought to my attention have been fixed and a number of common reader questions have been addressed. I have also added some information on how to work with colors and raster graphics. It is my hope that this document is now stable and reasonably error-free. If you find an error, please send me e-mail and let me know. I can’t promise that I’ll fix it right away, but I will at least add it to my list of things to do.

My sincere thanks goes out to everyone who has sent me e-mail concerning the guide. Whether you were asking a question, or offering me a correction, I sincerely appreciate it. My only regret is that I have not been able to be as responsive to questions and corrections as I would like.

I left Indiana University quite a long time ago (nearly ten years as of the time of this writing), and while I still have write access to my old account space I can not be sure that I always will have access. I will maintain the original copy at Indiana University while I have access, but from now on the official copy will be maintained at my personal website, where you can also find out a little more about me, if you are so inclined.

About this Document

This is meant to be a simple introduction to programming in the PostScript page description language from Adobe. This document is not meant to be a comprehensive reference manual (although it does contain an index of some of PostScript’s standard operators and a list of various errors). There are far better reference books, if this is what you need. Instead, this is meant as an easily accessible on-line tutorial. It was written with the assumption that you have some experience programming and are familiar with concepts like arrays and variables.

The scope of this document is fairly limited. I cover only a subset of PostScript Level 1 (the earliest version). Since I started this guide, Adobe brought out two revisions to the language: called Level 2 and Level 3. This document was never meant to cover these versions of PostScript (although the code I present here should run just fine on a Level 2 or Level 3 capable printer). Likewise, I do not cover any advanced printing concepts like color separations or halftone screens (this is mainly due to ignorance on my part, I am an engineer... not a printer or graphic designer... although I do admire good graphic design when I see it).

I have created this document because I have noticed that many people on the Internet have been asking for some online document to get them started. I decided that this was a good opportunity. I have benefited from the free and open nature of the Internet (most of the software I use is freeware or shareware). This is my opportunity to give something back to the community and to try to perpetuate something of the original community atmosphere that existed when I first started using it.



PostScript is a registered trademark of Adobe Systems Incorporated. The copyright to the PostScript language is also held by Adobe Systems Incorporated. Legal questions concerning these issues should be directed to them. Please note that this site is not related to, supported by, or condoned by Adobe in any way. It is an independent site and is not official.


No warranty or guarantee, either expressed or implied, is made as to the correctness of this document. The author can not be held responsible for any damages that may occur through the use of any code contained herein.

You get what you paid for.

Copyright Information

Creative Commons License

When I first started this guide, there was no convenient way to put something out there in such a way that you could keep the copyright, but still allow people to make copies or even derivative works. Now there is, through the joys of the Creative Commons. So, since the Creative Commons licenses are now available, this new version is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.