Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Overview What is PostScript? Types Language Concepts Control Operators Examples What is PostScript page description language : PostScript is a programming language optimized for printing graphics and text It was introduced by Adobe in 1985 The main purpose of PostScript was to provide a convenient language in which to describe images in a device independent manner. This device independence means that the image is described without reference to any specific device features (e.g. printer resolution) Types String: “This is a string” would be written as (This is a string). Express a string as hexadecimal codes in angle brackets. “ABC” would be expressed as <414243>. Boolean Real Array Types Arrays: One Dimensional Object of different types in an array /arrayName [ 12 (Twelve) True] def /arrayName [ 1 2 4 add] def /arrayName 10 array Store and Fetch array elements: put, get /anArray 10 array def anArray 8 (language) put anArray 8 get Language Concepts Variable: /varName value def Path: A path is a collection of (possibly disjoint) line segments and curves arranged on the page. newpath 144 72 moveto 144 432 linto stroke showpage Dictionary: is a table that associates pairs of objects <Key, Value> System Dictionary : operator , action User Dictionary : /var1Name Value def Language Concepts Procedures: /inch {72 mul} def Stack: Graphic Stack Operand Stack (clear, dup, pop, roll, pstack) Dictionary Stack Operator: Every command in PostScript is an operator: add, mul, findfont, moveto ... Programming in PostScript Postfix Notation in PostScript : One must first place the operands on stack and then call the operator. 5+27 5 27 add 8 –7 * 3 8 7 3 mul sub 7 3 mul 8 exch sub Control Operators Conditional: Comparisons: Logical Operator: And , or, not, xor bool { op } if bool {op1} {op2} ifelse Control Operator Loops: Repeat: For: Iteration { loop_body_expression} repeat Loop_counter_init_value increment_value {op} for { op }loop : end with “exit” AnArray {op} forall /Times-Italic findfont 30 scalefont setfont /printZip { 0 0 moveto (Zip) show} def 320 400 translate .95 -.05 0 % start incr. end {setgray printZip -1 .5 translate } for 1 setgray printZip showpage /starside { 72 0 lineto currentpoint translate -144 rotate } def /star { moveto currentpoint translate 4 {starside} repeat closepath gsave .5 setgray fill grestore stroke } def 200 200 star %add line to path %move origin %rotate coord. sys. %stack: x y Refrences http://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF http://www.tailrecursive.org/postscript/postscript.html