home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / FREQ_QA / PSFAQ.ZIP / PS.FAQ
Text File  |  1994-03-03  |  133KB  |  3,317 lines

  1. PostScript monthly FAQ v2.2 12-26-93 [01-04 of 11]
  2.     From: Jonathan Monsarrat <postscript-request@cs.brown.edu>
  3.     Date: Thu, 3 Mar 1994 01:11:57 GMT    (52 screens)
  4.  
  5. Archive-name: postscript/faq/part1-4
  6. Last-modified: 1993/12/26
  7. Version: 2.2
  8.  
  9.                               -- PostScript --
  10.  
  11.                             Answers to Questions
  12.  
  13.                     (the comp.lang.postscript FAQ v2.2)
  14.  
  15.                                Jon Monsarrat
  16.  
  17.                               jgm@cs.brown.edu
  18.  
  19.  
  20.  
  21.  
  22.  
  23.                      This FAQ is formatted as a digest.
  24.  
  25.                 Most news readers can skip from one question
  26.  
  27.                      to the next by pressing control-G.
  28.  
  29.  
  30.     Changes since the last version are marked with a '|' in the table
  31.     of contents and in the sections in the text-only format of the FAQ.
  32.  
  33.     Now that there is Linux and NetBSD and BSD 386 UNIX IBM PC (and
  34.     clone) users can run any of the X-windows and UNIX programs in the
  35.     utilities section. See comp.os.linux. Also, there is now
  36.     GhostScript for the Macintosh.
  37.  
  38.     Many thanks to Dan Carrigan for reformatting the books and
  39.     publishers section.
  40.  
  41.     The utilities index from the comp.sources.postscript FAQ will be
  42.     posted in comp.lang.postscript now too.
  43.  
  44.     Please help fix the FAQ! All comments should be mailed to
  45.     jgm@cs.brown.edu. My favorite way to receive a change suggestion is
  46.     when it is accompanied by a section of the FAQ that is edited and
  47.     mailed to me verbatim as an example. If you would like to
  48.     contribute, please read the section ``about the FAQ'' first. Thank
  49.     you!
  50.  
  51.     Books and programs are referred to by name only. See the book
  52.     sections for book information, and the comp.sources.postscript FAQ
  53.     for a full list of all PostScript related programs. I have archived
  54.     a number of the small utilities in
  55.     wilma.cs.brown.edu:pub/postscript. You can get the
  56.     comp.sources.postscript FAQ from
  57.     wilma.cs.brown.edu:pub/comp.sources.postscript.
  58.  
  59.     Related FAQs: comp.text, comp.text.tex, comp.fonts, comp.graphics,
  60.     comp.sys.mac.apps, comp.sources.postscript.
  61.  
  62.     Table of Contents
  63.  
  64.  
  65.     This FAQ has 11 sections. It is available by anonymous ftp to
  66.     wilma.cs.brown.edu:pub/comp.lang.postscript/FAQ.txt in ASCII, and
  67.     there are also LaTeX, DVI, and PostScript formats.
  68.  
  69.  
  70.          1 General Questions
  71. |           1.1 What is PostScript?
  72.             1.2 How can I tell how many pages my document will have?
  73.             1.3 How can I print just one page or a few pages from a big
  74.             1.4 How can I print more than one page per sheet of paper?
  75. |           1.5 How can I edit a PostScript picture?
  76.             1.6 How can I print PostScript on a non-PostScript printer?
  77. |           1.7 How do I print a file containing 8-bit characters?
  78.             1.8 What other graphics languages are there?
  79.          2 Printers
  80.             2.1 How can I get my printer to talk back to me?
  81. |           2.2 Should I leave my printer on?
  82. |           2.3 How do you print double-sided on a single-sided printer?
  83.             2.4 How do I suppress the power-on start page?
  84.             2.5 How do I make a downloaded font ``persistent''?
  85.             2.6 How do I remove a persistent (``permanent'') downloaded font?
  86.             2.7 How do I reset the printer without power-cycling?
  87.             2.8 About saving files
  88. |           2.9 What's the control-D business?
  89.             2.10 Why does the printer say ``still busy'' when my document is
  90.             2.11 How should I set up my spoolers?
  91. |           2.12 What are PPD files?
  92. |           2.13 What's a timeout error?
  93.          3 Formats and Conversions
  94.             3.1 How can I convert PostScript to some other graphics format?
  95. |           3.2 How can I convert HPGL to PostScript?
  96.             3.3 How can I convert DVI to PostScript?
  97.             3.4 How can I convert HP Laserjet language (PCL) to PostScript?
  98.             3.5 How can I convert TeX PK format font to PostScript?
  99.             3.6 How do I embed PostScript into troff?
  100.             3.7 How do I embed PostScript into LaTeX or TeX?
  101.             3.8 How can I convert an image to PostScript?
  102.             3.9 How can I convert ASCII text to PostScript?
  103.  
  104.             3.10 How can I convert PostScript to ASCII?
  105. |           3.11 How do I convert between PFB, PFA, Mac, PFM, and AFM?
  106.          4 Fonts
  107. |           4.1 What are .PFB and .PFA files?
  108. |           4.2 How does Macintosh Store PostScript Fonts?
  109.             4.3 How can I convert a PostScript font to TeX's PK format?
  110.             4.4 Why are Adobe fonts hidden?
  111.             4.5 How do I get bitmap representations of Adobe fonts?
  112.             4.6 What are some good ftp sites for fonts?
  113.             4.7 How can I re-encode a font?
  114.             4.8 What's the difference between a Type 1 and a Type 3 font?
  115. |           4.9 What vendors sell fonts for PostScript printers?
  116.             4.10 What are ATM fonts?
  117.             4.11 What are Multiple Master Fonts?
  118.             4.12 Do I need a Level Two printer to use Multiple Master Fonts?
  119.             4.13 What are Type 4 fonts?
  120.             4.14 What are Type 5 fonts?
  121.             4.15 Is there an editor for Type 1 Fonts?
  122.          5 Books
  123.             5.1 Books
  124.             5.2 Publishers
  125.          6 About Adobe
  126.             6.1 How do I get in touch with Adobe?
  127.             6.2 What can Adobe do for me?
  128.          7 Programming in PostScript
  129.             7.1 What is PostScript level 2?
  130.             7.2 Should I learn level 2 PostScript?
  131.             7.3 Where can I find examples of PostScript code?
  132.             7.4 What is the physical size of the page?
  133.             7.5 What is the Imagable Area of the page
  134.             7.6 Why can't I do a pathforall after a charpath ?
  135.             7.7 How do I center a string of text around a point?
  136.             7.8 How can I concatenate two strings together?
  137.             7.9 What do I do when I get stack overflow/underflow?
  138.             7.10 How can I print in landscape mode?
  139.          8 Computer-specific PostScript
  140.             8.1 Sun Workstations
  141.             8.2 IBM PC
  142.             8.3 Apple Macintosh
  143.          9 Encapsulated PostScript
  144.             9.1 What is Encapsulated PostScript?
  145.             9.2 What are EPSI and EPSF?
  146.             9.3 How do I convert PostScript to EPS?
  147.             9.4 How do I get the bounding box of a PostScript picture?
  148.          10 About The Comp.Lang.PostScript FAQ (and Usenet Guide to
  149.             10.1 The PostScript FAQ: What is it?
  150.             10.2 How to get the FAQ files
  151.             10.3 How to write a FAQ answer
  152.             10.4 The FAQ can contain LaTeX and PostScript inserts
  153.             10.5 Revising the FAQ
  154.             10.6 How to submit new information
  155.             10.7 How to add a program description to the FAQ index
  156.             10.8 How to add a book description to the FAQ
  157.             10.9 Questions that need answers
  158.          11 About PostScript 2
  159.             11.1 What printers support Level 2 PostScript?
  160.             11.2 What is PostScript Level 2?
  161.             11.3 [ Color Extensions ]
  162.             11.4 [ Composite Font Extensions ]
  163.             11.5 [ Display PostScript Extensions ]
  164.             11.6 [ Overview of Level 2 Features ]
  165.             11.7 Filters
  166.             11.8 Binary Encoding
  167.             11.9 Optimized graphics operators
  168.             11.10 Optimized text operators
  169.             11.11 Forms
  170.             11.12 Patterns
  171.             11.13 Images
  172.             11.14 Composite Fonts
  173.             11.15 New Color Spaces
  174.             11.16 New screening/halftoning technology
  175.             11.17 Improved printer support features
  176.             11.18 Interpreter parameters
  177.             11.19 Resources
  178.             11.20 Dictionaries
  179.             11.21 When did Level 2 products come available?
  180.             11.22 Are Level 1 and Level 2 implementations compatible?
  181.  
  182.  
  183.  
  184. Subject: 1 General Questions
  185.  
  186.  
  187. Subject: 1.1 What is PostScript?
  188.  
  189.     PostScript is a page description programming language.
  190.  
  191.     It is perhaps the most versatile and loved language for printers,
  192.     being used in printers world-wide. It is capable of drawing to
  193.     computer screens and any kind of drawing device. PostScript is
  194.     interpreted, stack based and has latent typing. It somewhat
  195.     resembles the computer language FORTH.
  196.  
  197.     A number of programmers write PostScript programs directly for a
  198. |   variety of drawing applications. The NeXTSTEP Operating System,
  199. |   running on Intel-486 and Motorola machines, uses Display
  200. |   PostScript Level II to manage the display. However, PostScript
  201.     programs are usually documents meant to be printed that have been
  202.     generated by a program written in some compiled language.
  203.  
  204.  
  205. Subject: 1.2 How can I tell how many pages my document will have?
  206.  
  207.     The easiest way to count pages is view your document on-line with a
  208.     PostScript previewer. Some previewers like Ghostview and GSPreview
  209.     count the pages for you. (See the comp.sources.postscript FAQ,
  210.     which has a section ``PostScript Interpreters and Utilities''.)
  211.  
  212.     If your document is generated by a program compliant with the
  213.     Document Structuring Conventions, you should be able to just count
  214.     the number of ``%%Page:'' comments imbedded in the document.
  215.     With UNIX you can type
  216.  
  217.   grep -c %%Page: document.ps
  218.  
  219.     to do this counting. (See Section 9, ``Encapsulated PostScript'.)
  220.     The only completely reliable way to count pages is to ask the
  221.     printer after the job is printed. PostScript printers maintain a
  222.     page counter that can be queried before and and after the job is
  223.     printed, and the page count is a simple subtraction. This tends to
  224.     require rather sophisticated spooling systems and a communications
  225.     channel that is bidirectional. However, some printers allow you to
  226.     submit jobs on one port, and issue queries on another.
  227.  
  228.     Send this PostScript through a bidirectional I/O port and you'll
  229.     get back the page count, nominally the total number of pages
  230.     printed since manufacture:
  231.  
  232.     statusdict begin pagecount == end flush
  233.  
  234.     Experts using a level 2 printer can use the SerialOff.PS and
  235.  
  236.     SerialEHandlder.ps programs to communicate bidirectionally to the
  237.     printer.
  238.  
  239.  
  240. Subject: 1.3 How can I print just one page or a few pages from a big
  241.     document? How can I print pages in reverse order?
  242.     Try using a host-specific program, like the UNIX command psrev,
  243.     which is part of the TranScript suite of software from Adobe
  244.     Systems. Or use the more general utilities Ghostview, psutils or
  245.     psxlate.
  246.  
  247.     There is no guarantee that a given PostScript document can be split
  248.     in such a manner. The reason is that some programs which generate
  249.     PostScript code don't conform to the Adobe Document Structuring
  250.     Conventions (DSC). (See Section 9, ``Encapsulated PostScript''.) A
  251.     notable example of this is Microsoft Word.
  252.  
  253.  
  254. Subject: 1.4 How can I print more than one page per sheet of paper?
  255.  
  256.     Use psnup or pstext or enscript.
  257.  
  258.     These programs redefine the PostScript ``showpage'' command to do
  259.     multiple PostScript pages per physical page. If one program doesn't
  260.     work with a complex document, try out other ones.
  261.  
  262.     Some PostScript programs can't work with these programs because
  263.     they break the EPS conventions (See Section 9, ``Encapsulated
  264.     PostScript''.). The reason is that some Postscript operators (such
  265.     as initgraphics, the list is in the Red book) change the printer
  266.     state so "violently", that software trying to do things like n-up
  267.     will get confused. Theoretically, an EPS shouldn't have any of
  268.     these operators, but it may not really be an EPS, or there may be a
  269.     weird interaction between TeX, the EPS and the inclusion mechanism
  270.     that breaks psnup.
  271.  
  272.  
  273. Subject: 1.5 How can I edit a PostScript picture?
  274.  
  275.     If you know the PostScript programming language, just use any text
  276.     editor to edit the code directly.
  277.  
  278.     If you want to do it visually, you can use Canvas on the Macintosh.
  279. |   Arts Letters software package from Computer Support Corporation is
  280. |   supposed to be able to read arbitrary EPS files, using a software
  281. |   converter called Decipher. Also, Island Graphics has a trio of
  282. |   software packages called, appropriately, Island Draw/Paint/Write.
  283. |   This is also supposed to include a full-blown PostScript
  284. |   interpreter, and be able to read and edit arbitrary PostScript
  285. |   files.
  286.  
  287.  
  288. Subject: 1.6 How can I print PostScript on a non-PostScript printer?
  289.  
  290.     You need a tool that converts to something that your printer knows
  291.     how to print. Use Freedom of Press, GhostScript, pageview, TScript,
  292.     or UltraScript PC. Or, use a printer cartridge if your printer
  293.     manufacturer sells one.
  294.  
  295.  
  296. Subject: 1.7 How do I print a file containing 8-bit characters?
  297.  
  298. |   If you only have Transcript you just don't. Transcript uses
  299. |   "enscript" to convert a "text" file to a PostScript file and
  300. |   "enscript" is not able to deal with 8-bit characters.
  301. |
  302. |   You have to use one of the many programs that convert text to
  303. |   PostScript, like a2ps, which not only handles the 8-bit characters
  304. |   in a very nice way using the standard ISO Latin 1 character
  305. |   encoding, but it also produces outputs in a series of very well
  306. |   set, nice an paper saving formats, much nicer than the ones
  307. |   produced by enscript.
  308.  
  309.  
  310. Subject: 1.8 What other graphics languages are there?
  311.  
  312.     HPGL is for pen plotters. PCL is for HP Laser printers (and
  313.     compatibles). Both are by HP, and PCL5 is supposed to allow
  314.     inclusion of HPGL commands, preceded by an appropriate escape code,
  315.     however I have found this to give errors and abort even for simple
  316.     HPGL code that plots fine on a plotter.
  317.  
  318.  
  319. Subject: 2 Printers
  320.  
  321. Subject: 2.1 How can I get my printer to talk back to me?
  322.  
  323.     Experts using a level 2 printer can use the SerialOff.PS and
  324.     SerialEHandlder.ps programs to communicate bidirectionally to the
  325.     printer.
  326.  
  327.     If you just need the error returns from the printer, you can spawn
  328.     a cat < port >> logfile&
  329.     in your system startup. Then you will get a log of everything the
  330.     printer says. This works on any serial-port connected printer.
  331.  
  332.  
  333. Subject: 2.2 Should I leave my printer on?
  334.  
  335. |   Most laser printers consume several hundred watts while idle in
  336. |   order to keep the fuser warm. A few models shut down automatically
  337. |   after a while, and this feature seems to be the wave of the future.
  338. |
  339. |   Wear-and-tear due to power cycling is no longer the problem it once
  340. |   was. The advice in the FAQ would have been appropriate in the
  341. |   1970s, but no longer. A good modern rule of thumb is to turn off
  342. |   electronic equipment if it won't be used for a few hours (overnight
  343. |   or weekends), otherwise to leave it on.
  344.  
  345.  
  346. Subject: 2.3 How do you print double-sided on a single-sided printer?
  347.  
  348. |   The biggest problem comes in jamming when you feed the document
  349. |   through the second time to print the backside. To minimize this
  350. |   problem, you want to minimize the curl that the paper acquires in
  351. |   passing through the printer. So, if your printer normally stacks
  352. |   face down (to make the page order come out right) rearrange it
  353. |   (often this involves flipping out a plastic paper catcher on the
  354. |   end) so the pages feed straight through and stack face up. Then
  355. |   acquire and build psutils, and run your document through the
  356. |   following commands:
  357. |
  358. |      pstops '2:0'           <original.ps >odd.ps
  359. |      pstops '2:1U@1(1w,1h)' <original.ps >even.ps
  360. |
  361. |   This puts the even and odd pages in different files, and rotates
  362. |   the even pages 180 degrees so the top and bottom are reversed. This
  363. |   lets you feed the paper back through with the old trailing edge at
  364. |   the front; since pages get the most severe curl at the leading edge
  365. |   this also helps reduce jamming. Print odd.ps, flip the output pile
  366. |   face down and backwards, put it back in the input magazine, and
  367. |   print even.ps.
  368. |
  369. |   If the printer is fed by a shared print queue, you can leave the
  370. |   paper magazine out after you put the first pass pages into it,
  371. |   before you submit the second half, then make sure your job is at
  372. |   the front of the queue (waiting for you to replace the paper tray)
  373. |   before you reinsert the tray.
  374. |
  375. |   Alternatively, particularly with serially-interfaced printers,
  376. |   there's a long enough delay to pull the paper tray out between two
  377. |   print jobs, so you can submit them both, then pull the tray out as
  378. |   soon as the last page of the first job finishes. The ``pstops''
  379. |   invocations report how many pages they emit, so you can count pages
  380. |   to determine when the first one is done.
  381.  
  382.  
  383. Subject: 2.4 How do I suppress the power-on start page?
  384.  
  385.     Disabling the start page is described in your printer's PostScript
  386.     supplement. The most common sequence is ``
  387.  
  388.     serverdict begin 0 exitserver
  389.     statusdict begin false setdostartpage
  390.     end
  391.  
  392.     ''.
  393.  
  394.  
  395. Subject: 2.5 How do I make a downloaded font ``persistent''?
  396.  
  397.   %!PS-Adobe-2.0 ExitServer
  398.   %%BeginExitServer: 0
  399.   serverdict begin 0 exitserver
  400.   %%EndExitServer
  401.   % Test for existence of font, abort if present.
  402.   % This won't work on a printer with a hard disk!
  403.   /str 32 string def
  404.   /Eurostile dup FontDirectory exch known
  405.   { str cvs print ( is already loaded!\n) print flush quit }
  406.   { (loading font ) print str cvs print (\n) print flush }
  407.   ifelse
  408.   %% Font follows...
  409.  
  410.     The part following ``%%EndExitServer'' is optional. If you use
  411.     it, change Eurostile to the name of the font. The default PFA
  412.     behe6ZK$Z.H:o use up additional VM for the new copy if another
  413.     copy has already been downloaded.
  414.  
  415.  
  416. Subject: 2.6 How do I remove a persistent (``permanent'') downloaded font?
  417.  
  418.     In PostScript Level 2, you can use the undefinefont operator to
  419.     remove fonts selectively.
  420.  
  421.     The only reliable method in PostScript Level 1 is to restart the
  422.     printer, for example with:
  423.  
  424.  
  425.     serverdict begin 0 exitserver
  426.     systemdict /quit get exec
  427.  
  428.     Of course, the real solution is just to not download persistent
  429.     fonts unless you really want them to persist indefinitely. If you
  430.     want them only for one job, download them as part of the job.
  431.  
  432.  
  433. Subject: 2.7 How do I reset the printer without power-cycling?
  434.  
  435.     Most printers can be reset by issuing ``serverdict begin 0
  436.     exitserver systemdict /quit get exec''.
  437.  
  438.  
  439. Subject: 2.8 About saving files
  440.  
  441.     Adobe recommends that driver writers do not put EOT (control-D)
  442.     into files when saving to disk. Normally, the EOT is a part of the
  443.     protocol for parallel and serial ports and never hits the
  444.     PostScript interpreter.
  445.  
  446.     Drivers that do embed EOD can create problems for devices that
  447.     allow other communication methods (e.g. AppleTalk, Ethernet, and
  448.     SCSI) where the EOT is not part of the communications protocol. It
  449.     is useful to redefine EOT in these instances so that the
  450.     interpreter does not generate an error. The recommended
  451.     redefinition is:
  452.  
  453.  
  454.                    (\004) cvn {} def
  455.  
  456.     This should convert any stand-alone embedded EOTs into a null
  457.     procedure.
  458.  
  459.  
  460. Subject: 2.9 What's the control-D business?
  461.  
  462.     PostScript printers communicating over serial lines use control-D
  463.     as an end of job indicator. The host computer should then wait for
  464.     the printer to send a control-D back to indicate that the job has
  465.     finished. Managing the serial protocol between host and printer
  466.     should be done by some form of print service, but if you're unsure
  467.     whether your print service is doing it, it's an idea to send one
  468.     yourself.
  469.  
  470.     PC type computers frequently do not have any kind of printer
  471.     manager and applications end up sending control-D characters to the
  472.     printer, sometimes before and after a job. PC applications
  473.     frequently embed a control-D as the first character in the print
  474.     file, presumably to flush out any other jobs, and thereby breaking
  475. |   the Adobe Document Structuring Conventions. There is a way to turn
  476. |   off generation off the control-D in Windows (anybody know it?).
  477.  
  478.     If you want to prevent applications from doing this, you could use
  479.     a spooler which would look at the end of every outgoing file and
  480.     drop the control-D on the end if there happened to be one.
  481.  
  482.     If you want a spooler, check out lprps.
  483.  
  484.  
  485. Subject: 2.10 Why does the printer say ``still busy'' when my document is
  486.     done printing?
  487.  
  488.     Sometimes when you finish a print job, the printer ``Ready'' light
  489.     keeps flashing for a minute or so. Somehow, the printer has
  490.     received some character(s) after the control-D which was sent
  491.     immediately after the PostScript file. The most common is that a
  492.     newline has been inserted after the control-D. The printer took
  493.     these character(s) to be another program, and eventually timed-out
  494.     while waiting for the rest of it. This can happen because of the
  495.     host not waiting for the printer to finish.
  496.  
  497.  
  498. Subject: 2.11 How should I set up my spoolers?
  499.  
  500.     Since PostScript usually is prefixed with ``%!'', it's easy to
  501.     educate your spooler to autoselect between passing raw PostScript
  502.     through to the printer or doing an ``ASCII-to-PostScript''
  503.     conversion first. There are many packages that will do this,
  504.     including Transcript and psxlate.
  505.  
  506.     Unfortunately, many PostScript applications generate PostScript
  507.     without a proper ``%!'' magic cookie.
  508.  
  509.     The spooler should be responsible for transmitting the ``job
  510.     termination code'' (a control-D on serially-connected printers) to
  511.     the printer, not the application. Do yourself a favor and disable
  512.     (or filter out) control-Ds in your applications and generate them
  513.     in the spooler. This will be far more reliable in the face of
  514.     arbitrary input.
  515.  
  516.  
  517. Subject: 2.12 What are PPD files?
  518.  
  519.     Adobe Postscript Printer Description (PPD) files describe how to
  520.     use the special features for a specific Postscript printer. They
  521.     are suppose to be human-readable, but they are really only readable
  522.     by PostScript gurus. It is the responsibility of the printer
  523.     manufacturer to supply PPD files. However, the Adobe mail server
  524.     has many of them. (see the Section 6, ``About Adobe'')
  525.  
  526. |   Adobe Technical Document 5003 - PPD Specification describes how to
  527. |   read and parse PPD files. You can find it on the Adobe mail server,
  528. |   or by anonymous ftp to
  529. |   ftp.adobe.com:/pub/adobe/Documents/5003.PPD_Spec.ps.
  530.  
  531.  
  532. Subject: 2.13 What's a timeout error?
  533.  
  534. |   The wait timeout is the maximum time the PostScript interpreter
  535. |   will wait for input before aborting. The timeout interval begins
  536. |   when the interpreter finishes executing everything it has received
  537. |   so far and starts waiting for the host to send it more data. If
  538. |   this timeout expires and no more data arrives, a timeout occurs.
  539. |
  540. |   In particular, a compute-bound job (or one that goes into an
  541. |   infinite loop) will not encounter a wait timeout, since it is not
  542. |   waiting. The long diatribe about the need to "keep sending stuff"
  543. |   and problems with long compute-bound jobs is totally off the mark.
  544. |   The data channel may stop due to flow control, and may stay stopped
  545. |   for long periods if the printer is very busy. This is perfectly OK
  546. |   and won't cause a timeout.
  547. |
  548. |   Don't disable the wait timeout. The whole point of the wait timeout
  549. |   is to prevent the interpreter from being indefinitely tied up by a
  550. |   host application that has crashed, a communication channel that has
  551. |   been disconnected, or whatever. This is particularly important for
  552. |   networked printers. The only situation in which disabling timeouts
  553. |   is appropriate is when debugging applications or drivers, since you
  554. |   don't want the printer timing out while the host is at a breakpoint
  555. |   or something.
  556.  
  557. Subject: 3 Formats and Conversions
  558.  
  559.     This section describes formats that can be converted to and from
  560.     PostScript, and how to convert them. Encapsulated PostScript and
  561.     Fonts have their own sections.
  562.  
  563.  
  564. Subject: 3.1 How can I convert PostScript to some other graphics format?
  565.  
  566.     Since PostScript is not just a picture-description language, but in
  567.     fact a complete programming language, you will need a complete
  568.     PostScript interpreter to convert or display a PostScript graphic.
  569.     See the comp.sources.postscript FAQ for an index of all PostScript
  570.     related programs.
  571.  
  572.     Try using GhostScript.
  573.  
  574. Subject: 3.2 How can I convert HPGL to PostScript?
  575.  
  576. |   Use hp2ps.
  577.  
  578.  
  579. Subject: 3.3 How can I convert DVI to PostScript?
  580.  
  581.     Use dvips.
  582.  
  583.  
  584. Subject: 3.4 How can I convert HP Laserjet language (PCL) to PostScript?
  585.  
  586.     Use lj2ps for simple PCL. Alternatively, another lj2ps, from
  587.     psroff3.0, is a little more complete.
  588.  
  589.     hp2pbm can convert all of PCL4 (up to and including rasters,
  590.     downloaded fonts and macros) into PostScript, G3 and any other
  591.     PBM-supposed format.
  592.  
  593.  
  594. Subject: 3.5 How can I convert TeX PK format font to PostScript?
  595.  
  596.     Psroff3.0 contains programs that can convert TeX PK format or HP
  597.     SFP format fonts into PostScript bitmap fonts along with
  598.     rearranging encoding, etc. While bitmap bfonts scale poorly, this
  599.     is sometimes of use in special circumstances.
  600.  
  601.  
  602. Subject: 3.6 How do I embed PostScript into troff?
  603.  
  604.     Most troffs can be ``coerced'' into including PostScript figures.
  605.     The best approach is a configuration that takes EPS PostScript and
  606.     can automatically scale it, or tell troff how big the picture is.
  607.     Groff and DWB 3 have this built in.
  608.  
  609.     psfig is an add-on EPS inclusion handler that can add this
  610.     capability to other versions of troff, provided that a compatible
  611.     PostScript driver is used (Psroff 3.0 for ditroff or CAT troff,
  612.     Transcript for ditroff). See the comp.text FAQ for more detail.
  613.  
  614.  
  615. Subject: 3.7 How do I embed PostScript into LaTeX or TeX?
  616.     You should use an add-on program for seamless PostScript inclusion.
  617.  
  618.     Use psfig.
  619.  
  620.     If your LaTeX is simple, but your PostScript is fancy, try using
  621.     LameTeX.
  622.  
  623.     If you need a good compromise, use pstricks.
  624.  
  625.     See the comp.text.tex FAQ.
  626.  
  627.  
  628. Subject: 3.8 How can I convert an image to PostScript?
  629.  
  630.     First determine what format your images are in. PBMPLUS will have
  631.     converters for most image formats.
  632.  
  633.     To convert an image to PostScript in X windows, you can display the
  634.     image on the screen, and grab it with xv, which can save the image
  635.     in a PostScript file.
  636.  
  637.     A more general alternative in X windows would be to use the PPM,
  638.     PGM and PBM utilities in the X11R4 and X11R5 distributions.
  639.  
  640.  
  641. Subject: 3.9 How can I convert ASCII text to PostScript?
  642.  
  643.     Unless your printer is smart about raw ASCII, you can't just send
  644.     the ASCII to a PostScript printer, because the printer will attempt
  645.     to interpret your ASCII file as PostScript code. You need a program
  646.     which will wrap some PostScript code around your ASCII file.
  647.  
  648.     Try any of the following programs: asciiprint.ps, ato2pps, cz,
  649.     ETSR, i2ps, lpp, lwf, POSTPRN, printer, psf, psfx80, PSR, ps2txt,
  650.     pstext, swtext, text2ps, TranScript, spike.ps, enscript, nenscript,
  651.     a2ps, asc2ps, ascii2ps, crossword.ps, double.ps, landscape.ps,
  652.     numbered.ps, portrait.ps, or wide.ps.
  653.  
  654.     If you want to make something fancy, why not use a word processor?
  655.     Most of them can ``include'' ASCII directly from a file and produce
  656.     PostScript.
  657.  
  658.  
  659. Subject: 3.10 How can I convert PostScript to ASCII?
  660.  
  661.     In general, when you say ``I want to convert PostScript to ASCII''
  662.     what you really mean is ``I want to convert MacWrite (which makes
  663.     PostScript output) to ASCII'' or ``I want to convert somebody's TeX
  664.     document (which I have in PostScript) to ASCII''.
  665.  
  666.     Unfortunately, programs like these (if they're smart) do a lot of
  667.     fancy stuff like kerning, which means that where they would
  668.     normally execute the postscript command for
  669.  
  670.  
  671.       ``print water fountain''
  672.  
  673.     instead they execute the postscript command for
  674.  
  675.  
  676.       ``print wat''      (move a little to get the spacing *just* right)
  677.       ``print er''       (move a little to get the spacing *just* right)
  678.       ``print foun''     (move a little to get the spacing *just* right)
  679.       ``print tain''     (move a little to get the spacing *just* right)
  680.  
  681.     So if I write a program to look through a PostScript file for
  682.     strings, like ps2ascii.pl, It can't tell where the words really
  683.     end. Here my program would see 4 strings
  684.  
  685.  
  686.   ``wat'' ``er'' ``foun'' ``tain''
  687.  
  688.     And it doesn't see any difference between the spacing between
  689.     ``found'' and ``tain'' (not a word break) and the spacing between
  690.     ``er'' and ``foun'' (a real word break).
  691.  
  692.     The problem is that PostScript for text formatting is usually
  693.     produced machine generated by a text formatter. A PostScript
  694.     generator like dvips might have a special command like ``boop''
  695.     that differentiates between a real world break and a fake one. But
  696.     every text formatter that generates PostScript has their own name
  697.     for the ``boop'' command.
  698.  
  699.     So you really want a ``PostScript to ASCII converter for dvips
  700.     output''.
  701.  
  702.     The only general solution I can see would be to redefine the show
  703.     operator to print out the currentpoint for every letter being
  704.     printed, like gs2asc, and then make up an ASCII page based on this
  705.     by sticking ASCII characters where they go in a two-dimensional
  706.     array. That would convert PostScript to ASCII ``formatted''.
  707.  
  708.     But even that wouldn't solve the problem, because special bitmap
  709.     fonts and and standard fonts like Symbol don't always print a ``P''
  710.     when you say the letter ``P''. Sometimes they print the greek Pi
  711.     symbol or a chess piece or a ZapfDingBat.
  712.  
  713.     Use ps2a, ps2ascii, ps2txt, ps2ascii.ps or ps2ascii.pl.
  714.  
  715.  
  716. Subject: 3.11 How do I convert between PFB, PFA, Mac, PFM, and AFM?
  717.  
  718.     Write or call Y and Y Software, listed in the fonts section as a
  719. |   vendor. For NEXTSTEP systems, write or call Trilithon Software,
  720. |   also listed in the fonts section as a vendor.
  721.  
  722.  
  723. Subject: 4 Fonts
  724.  
  725.     This section answers questions about fonts as they pertain to
  726.     PostScript. See the comp.fonts FAQ for more information about
  727.     fonts.
  728.  
  729.  
  730. Subject: 4.1 What are .PFB and .PFA files?
  731.  
  732.     ``PFB'' stands for Printer Font Binary, and is a STORAGE FORMAT in
  733.     which Adobe Type 1 font programs are usually distributed for IBM PC
  734.     and compatibles. Many application programs support fonts in PFB
  735.     format, and refer to them as ``downloadable''.
  736.  
  737.     Macintosh uses a radically different binary storage format than PC.
  738.     See below for some details.
  739.  
  740.     PFB files usually appear in several sections, each section preceded
  741.     by a binary header containing the type of the section (ASCII,
  742.     binary, or end of file) and the length of the section. Because of
  743.     the presence of the binary section headers, and the possible
  744.     presence of binary data sections, PFB files cannot in general be
  745.     sent directly to a PostScript printer. Application programs like
  746.     dvips which use fonts in PFB format unpack the font into ASCII
  747.     format before sending it to the printer. If you would like to use a
  748.     font which is in PFB format, you must unpack the font to make a PFA
  749.     (Printer Font ASCII) file. Adobe Systems supply a font downloader
  750.     for PC's which turns the PFB format into PFA format on the fly as
  751.     it's being downloaded.
  752.  
  753.     ``PFA'' stands for Printer Font ASCII, which is the unpacked
  754.     version of a PFB file. In PFB, the data is stored as-is. In a PFA,
  755.     any binary data present in a former PFB file is stored as ``ascii
  756.     hex''--meaning each byte of binary data is turned into two ASCII
  757.     characters representing the hexdecimal value.
  758.  
  759.     Once you have the PFA file, just send it to the printer ahead of
  760.     your file, and use the font like any other. There are several
  761.     programs which can do the conversion from PFB to PFA for you. Try
  762.     t1utils.
  763.  
  764. |   Details of the PFB format can be found in Adobe Technical Note #
  765. |   5040, ``Supporting Downloadable PostScript Fonts''.
  766.  
  767.  
  768. Subject: 4.2 How does Macintosh Store PostScript Fonts?
  769.  
  770. |   To start off understanding how Macintosh stores PostScript fonts,
  771. |   first you need to know that a Macintosh file consists of two
  772. |   different parts, called ``forks''. The two forks of a Macintosh
  773. |   file are called the ``resource fork'' and the ``data fork''.
  774. |
  775. |   The data fork normally contains the data of the file. In the case
  776. |   of a text editor, for instance, the data fork contains the text.
  777. |
  778. |   The resource fork contains system (resource) information about the
  779. |   file: who owns the file, its icon maybe, and other information. The
  780. |   various bits of information in the resource fork are contained in a
  781. |   complex structure. One of the items is a resource map, detailing
  782. |   the different kinds of resources and their positions in the
  783. |   resource fork.
  784. |
  785. |   The reason you need to know all this is because PostScript Type 1
  786. |   fonts are stored in the resource fork of Macintosh files. Why this
  787. |   was done is a historical mystery now, because the information could
  788. |   just as easily have been stored in the data fork in a format
  789. |   similar to PFB, and unpacking fonts would have been a whole lot
  790. |   easier.
  791. |
  792. |   PostScript Type 1 fonts are stored in resources with the name
  793. |   POST''. If you aren't familiar with the layout of resource forks,
  794. |   study the ``Resource Manager'' chapter of the Inside Macintosh
  795. |   books. Details of Macintosh PostScript Type 1 storage format can be
  796. |   found in Adobe Technical Note 5040, ``Supporting Downloadable
  797. |   PostScript Fonts''. The information in the Adobe Technical Note is
  798. |   incomplete in the sense that you need to understand the layout of
  799. |   Macintosh resource forks to make sense of the information.
  800. |
  801. |   In the majority of cases, you can assume that the POST resources
  802. |   are stored contiguously in the resource fork. Unfortunately, there
  803. |   are a few cases where this isn't true, and the resulting PFA file
  804. |   will be incorrect.
  805. |
  806. |   POST resources occur in five types. Type 0 are comments. Type 1 are
  807. |   ASCII data. Type 2 are binary data. Type 3 are end of this font
  808. |   program. Type 4 means that the remainder of this font appears in
  809. |   the data fork of the file! Type 5 means end of file.
  810. |
  811. |   Having talked about PostScript Type 1 fonts being stored in the
  812. |   resource fork, why is there a case where the font comes out of the
  813. |   data fork? Some PostScript Type 3 fonts are stored in this manner.
  814.  
  815.  
  816. Subject: 4.3 How can I convert a PostScript font to TeX's PK format?
  817.  
  818.     Use ps2pk or try out the GNU font utilities in fontutils.
  819.  
  820.  
  821. Subject: 4.4 Why are Adobe fonts hidden?
  822.  
  823.     In PostScript level 1, Adobe's fonts were hidden because they
  824.     didn't want people pirating copies instead of paying for them.
  825.     That's why you can't do a pathforall on a charpath.
  826.  
  827.     PostScript Level Two has removed the restriction, in the words of
  828.     the new Red Book, ``for most fonts''. There will still be some
  829.     vendors who will want to restrict access. Japanese font vendors,
  830.     for example, are concerned about piracy -- given the work that goes
  831.     into an 8,000-character Kanji font.
  832.  
  833.  
  834. Subject: 4.5 How do I get bitmap representations of Adobe fonts?
  835.  
  836.     On the IBM PC, use the Font Foundry program included with the font.
  837.     If you don't have it, contact Adobe for an upgrade.
  838.  
  839.  
  840. Subject: 4.6 What are some good ftp sites for fonts?
  841.  
  842.  
  843.   ftp.cs.umb.edu
  844.   sumex-aim.stanford.edu
  845.   archive.umich.edu
  846.   ftp.cica.indiana.edu    /pub/pc/win3/fonts
  847.   colonsay.dcs.ed.ac.uk   /pub/postscript/fonts
  848.  
  849.  
  850.   For the NeXT platform, fonts are available on the NeXT-FTP-archives,
  851.           sonata.cc.purdue.edu :/pub/next/graphics/fonts
  852.           fiasko.rz-berlin.mpg.de :/pub/next/fonts
  853.  
  854.     For Macintosh, look in sumex-aim.stanford.edu,
  855.     mac.archive.umich.edu, and ftp.cs.umb.edu (192.12.26.23), in
  856.     pub/tex/ps-screenfonts.tar.Z.
  857.  
  858.     Color PostScript samples and many other PostScript programs are
  859.     available from irisa.irisa.fr.
  860.  
  861.  
  862. Subject: 4.7 How can I re-encode a font?
  863.  
  864.     See ddev.ps for an example for code that does this. You can find it
  865.     by ftp to wilma.cs.brown.edu:pub/postscript/ddev.ps.
  866.  
  867.  
  868. Subject: 4.8 What's the difference between a Type 1 and a Type 3 font?
  869.  
  870.     The Type 1 font format is a compact way of describing a font
  871.     outline using a well-defined language that can be quickly
  872.     interpreted. The language contains operations to provide the
  873.     rasterizer with additional information about a character, known as
  874.     hints. The hints are additional information which describes how to
  875.     adjust the representation of the character to make it look good
  876.     when the font size is small compared to the device resolution. The
  877.     Type 1 font format is defined in the book ``The Adobe Type 1 Font
  878.     Format'', also known as the black book, for the colors on its
  879.     cover.
  880.  
  881.     The Type 1 font format has nothing to do with TrueType, which is
  882.     another font format defined by Apple. The Type 1 font format has
  883.     been around quite a while, and is used on a wide variety of
  884.     platforms to obtain scalable fonts.
  885.  
  886.     Most clone interpreters will not have Adobe's proprietary rendering
  887.     technology which interprets font hints to improve the appearance of
  888.     fonts shown at small sizes on low-resolution devices. The
  889.     exceptions (PowerPage and UltraScript) have their own hint
  890.     interpreters.
  891.  
  892.     The Type 3 font format is a way of packaging up PostScript
  893.     descriptions of characters into a font, so that the PostScript
  894.     interpreter can rasterize them.
  895.  
  896.     It is easier to create a Type 3 font program by hand than to create
  897.     the corresponding Type 1 font program. Type 3 font programs have
  898.     access to the entire PostScript language to do their imaging,
  899.     including the 'image' operator. They can be used for bitmapped
  900.     fonts, although that is certainly not a requirement. The Type 3
  901.     font format contains no provisions for 'hinting', and as such Type
  902.     3 font programs cannot be of as high a quality at low resolutions
  903.     as the corresponding Type 1 font program.
  904.  
  905.     Both formats are scalable formats, and both can be run on any
  906.     PostScript interpreter. However, because of the requirement that a
  907.     Type 3 font program have a full PostScript interpreter around, Type
  908.     3 font programs cannot be understood by the Adobe Type Manager.
  909.     Only Type 1 font programs can.
  910.  
  911.     Why bother making a font that's just made up of bitmaps? Once a
  912.     character from a font has been rendered, the bitmap will be saved
  913.     in a cache, and another instance of the same character at the same
  914.     size and orientation can be quickly drawn without recalculation.
  915.  
  916.     Because of Adobe Type Manager's wide availability on a large number
  917.     of platforms (PC, Mac, and Unix), the Type 1 font format makes an
  918.     excellent cross-platform scalable font standard.
  919.  
  920.  
  921. Subject: 4.9 What vendors sell fonts for PostScript printers?
  922.  
  923.     PostScript font vendors are many and varied. Here is a partial
  924.     list.
  925.  
  926.  
  927.  
  928.     Adobe Systems
  929.       sells a variety of fonts. With the huge number of third-party
  930.       Type 1 vendors, in recent years Adobe have specialized in
  931.       creating their own ``Adobe Originals'' -- high-quality fonts,
  932.       some of which are their renditions of classic faces (Adobe
  933.       Garamond) and some of their own devising (Stone, Utopia, ...).
  934.       Adobe Systems, 1585 Charleston Road, Mountain View, CA 94039.
  935.       (415) 961-4400
  936.  
  937.  
  938.     AGFA Compugraphic,
  939.       90 Industrial Way, Wilmington, Massachusetts 01887. (508)
  940.       658-5600.
  941.  
  942.  
  943.     Bear Rock Technologies
  944.       specializes in bar code fonts. 4140 Mother Lode Drive, Suite 100,
  945.       Shingle Springs California 95682.
  946.  
  947.  
  948.     Bitstream,
  949.       Athenaeum House, Cambridge, MA 02142. (617) 497-6222.
  950.  
  951.  
  952. |   Callifonts
  953. |     has a really nice looking set of calligraphy typefaces. P.O. Box
  954. |     224891, Dallas, TX 75222. (214) 504-8808.
  955.  
  956.  
  957.     Casady and Greene,
  958.       22734 Portola Drive, Salinas, CA 93908. (408) 484-9228.
  959.  
  960.  
  961.     Ecological Linguistics,
  962.       specializes in non-Roman alphabets. Ecological Linguistics, P. O.
  963.       Box 15156, Washington D. C. 20003.
  964.  
  965.  
  966.     Emigre Graphics
  967.       4475 ``D'' Street / Sacramento CA 95819 (800) 944 9021 ] Over 70
  968.       faces, all PostScript Type 1 ATM compatible, including the
  969.       omnipresent Modula and infamous Template Gothic. Almost all faces
  970.       are ``must haves'' for graphic designers. Call for free catalog.
  971.  
  972.  
  973. |   The Font Company
  974. |     12629 North Tatum Boulevard, Suite 210, Phoenix Arizona 85032.
  975. |     (602) 998-9711.
  976.  
  977.  
  978.     Image Club,
  979.       # 5 1902 11th St Southeast, Calgary, Alberta T2G 2G2, Canada.
  980.       (403) 262-8008.
  981.  
  982.  
  983. |   Lanston
  984. |     specializes in display faces.
  985.  
  986.  
  987.     Letraset
  988.       specializes in fancy kinds of script fonts, Letraset, 40
  989.       Eisenhower Drive, Paramus, New Jersey 07652. (201) 845-6100
  990.  
  991.  
  992.     Linguists Software
  993.       specializes in non-Roman alphabets (Farsi, Greek, Hangul, Kanji,
  994.       etc.) Linguists Software, P. O. Box 580, Edmonds, Washington
  995.       98020-0580. (206) 775-1130.
  996.  
  997.  
  998.     Monotype,
  999.       53 West Jackson Boulevard, Suite 504, Chicago, IL 60604.
  1000.  
  1001.  
  1002.     Page Studio Graphics,
  1003.       Chandler, Arizona, specialize in symbols fonts such as Mac icons,
  1004.       keyboards, and others, Page Studio Graphics, 3175 North Price
  1005.       Road, # 1050, Chandler, Arizona 85224. (602) 839-2763.
  1006.  
  1007.  
  1008. |   Software Complement
  1009. |     specializes in creating logo fonts. 8 Penn Avenue, Metamoras,
  1010. |     Pennsylvania 18366 USA.
  1011.  
  1012. |   The Font Company
  1013.  
  1014.  
  1015. |   TreacyFaces
  1016.  
  1017.  
  1018. |   Trilithon Software,
  1019. |     Portola Valley, California can supply fonts from the Adobe Type
  1020. |     library for NEXTSTEP. If you're working on NEXTSTEP, getting
  1021. |     fonts in the correct form with ancillary information and
  1022. |     downloaders and such is important. You can convert Mac fonts to
  1023. |     NEXTSTEP (PFA) format, but NEXTSTEP demands AFM files as well,
  1024. |     and many Mac/PC font vendors omit AFM files because Mac/PC apps
  1025. |     don't use them. For Adobe fonts for NEXTSTEP, save yourself a lot
  1026. |     of hassle by getting the fonts from Trilithon.
  1027. |
  1028. |     If you want non-Adobe fonts for NEXTSTEP, Trilithon Software can
  1029. |     supply font conversion tools to go from Macintosh or PC format to
  1030. |     NEXTSTEP format. The conversion tools generate AFM files if none
  1031. |     are supplied with the fonts, and sanity check AFM files for
  1032. |     correctness when they are supplied.
  1033. |
  1034. |     Two Ohlone, Portola Valley, California 94028 USA. Telephone:
  1035. |     (415) 325-0767, FAX: (415) 325-0768. E-Mail: info@trilithon.com.
  1036.  
  1037.  
  1038.     URW
  1039.       supplies high-quality fonts at low prices. They are also the
  1040.       creators of the top of the line font creation and editing
  1041.       software called Ikarus. URW, 4 Manchester Street, Nashua, New
  1042.       Hampshire 03060. (603) 882-7445.
  1043.  
  1044.  
  1045.     Y and Y Software
  1046.       , 106 Indian Hill, Carlisle Massachusetts 10741 USA. (508)
  1047.       371-3286. Sells a Font Metric Manipulation Package for DOS with
  1048.       lots of interesting utilities.
  1049.  
  1050.     Many more font vendors exist. Look in magazines and other sources.
  1051.     Check the Usenet newsgroup comp.fonts. Look in U & lc, published by
  1052.     ITC, for long lists of vendors.
  1053.  
  1054.  
  1055. Subject: 4.10 What are ATM fonts?
  1056.  
  1057.     There has been a rash of misunderstanding about the nature of Type
  1058.     1 fonts and what people call ATM fonts. ATM fonts are Adobe Type 1
  1059.     fonts. ATM stands for Adobe Type Manager -- a utility to render
  1060.     smooth characters on Macintosh and PC screens, from font outlines
  1061.     (Type 1 fonts) instead of using bitmap fonts. In one sense, there's
  1062.     no such thing as an ``ATM font'' -- ATM interprets Type 1 fonts, so
  1063.     there's no need to create a new name. A correctly constructed Type
  1064.     1 font can be interpreted by ATM.
  1065.  
  1066.  
  1067. Subject: 4.11 What are Multiple Master Fonts?
  1068.  
  1069.     Multiple Master Fonts are an extension to the Adobe font format.
  1070.     providing the ability to interpolate smoothly between several
  1071.     ``design axes'' from a single font. Design axes can include weight,
  1072.     size, and even some whacko notions like serif to sans serif.
  1073.     Adobes' first Multiple Master Font was Myriad -- a two-axis font
  1074.     with WEIGHT (light to black) on one axis, and WIDTH (condensed to
  1075.     expanded) along the other axis. In the case of Myriad, there are
  1076.     four ``polar'' designs at the ``corners'' of the design space. The
  1077.     four designs are light condensed, black condensed, light expanded,
  1078.     and black expanded.
  1079.  
  1080.     Given polar designs, you can set up a ``weight vector'' which
  1081.     interpolates to any point within the design space to produce a
  1082.     unique font for a specific purpose. So you can get a ``more or less
  1083.     condensed, somewhat black face''.
  1084.  
  1085.  
  1086. Subject: 4.12 Do I need a Level Two printer to use Multiple Master Fonts?
  1087.  
  1088.     No -- Multiple Master Fonts can be used on any PostScript printer.
  1089.     Multiple Master Fonts need a new PostScript operator known as
  1090.     makeblendedfont. The current crop of Multiple Master Fonts supply
  1091.     an emulation of this operator so the printer doesn't need this
  1092.     operator.
  1093.  
  1094.     A short tutorial on Multiple Master Fonts and makeblendedfont
  1095.     appears in PostScript by Example, by Henry McGilton and Mary
  1096.     Campione, published by Addison-Wesley.
  1097.  
  1098.  
  1099. Subject: 4.13 What are Type 4 fonts?
  1100.  
  1101.     Type 4 fonts are actually Type 3 fonts which contains a Type 1
  1102.     font. They're stored on hard disk in a special way to save space
  1103.     when they're loaded into printer RAM by findfont. Your interpreter
  1104.     must have the extra PostScript operator CCrun to handle Type 4
  1105.     fonts. They are usually used for Kanji (Japanese) characters.
  1106.  
  1107.  
  1108. Subject: 4.14 What are Type 5 fonts?
  1109.  
  1110.     Type 5 fonts are actually Type 1 fonts, but stored in printer ROM
  1111.     in a special compressed format. They're also known as CROM fonts
  1112.     (for Compressed ROM fonts). The contents of the CharStrings entries
  1113.     in Type 5 will probably be different from Type 1.
  1114.  
  1115.  
  1116. Subject: 4.15 Is there an editor for Type 1 Fonts?
  1117.  
  1118.     Fontographer for the Macintosh and MS-Windows under DOS is
  1119.     available from Altsys Corporation, 269 West Renner Road,
  1120.     Richardson, Texas 75080 USA. (214) 680-2060.
  1121.  
  1122.     Ikarus-M is availble for the Macintosh from URW, Harksheider
  1123.     Strasse 102, 2000 Hamburg 65, GERMANY. (040) 60 60 50 Or URW
  1124.     Software and Type, 4 Manchester Street, Nashua, New Hampshire
  1125.     03060. (800) 229-8791 in USA. (603) 882-7445 otherwise.
  1126.  
  1127.  
  1128. Subject: 5 Books
  1129.  
  1130.     There are many good books on PostScript language programming.
  1131.  
  1132.     Descriptions of all known books are listed below. A listing of
  1133.     publisher information follows.
  1134.  
  1135.     The most commonly known books are the ``blue book'', ``big red
  1136.     book'', and ``green book'' from Adobe, to be read in that order.
  1137.     They are nicknamed according for their jacket colors.
  1138.  
  1139.     Other books recommended to me include Thinking in PostScript,
  1140.     which allows its examples to be freely distributed, and PostScript
  1141.     by Example.
  1142.  
  1143.  
  1144. Subject: 5.1 Books
  1145.  
  1146.  
  1147.    Adobe Illustrator - The Expert Advisor Series
  1148.         Author        Diane Burns, S. Venit, David Smith
  1149.         Publisher     Addison-Wesley, 1989
  1150.         ISBN:         0-201-14397-6  $22.95
  1151.  
  1152.  
  1153.  
  1154.    Adobe illustrator 3 complete.
  1155.         Author        Venit, Sharyn ; et al.
  1156.         Publisher     Reading, MA ; Wokingham : Addison-Wesley, c1991
  1157.         Description   ix, 412 p. : [4] p. of plates : ill. (some col.) ;
  1158.                       24 cm.
  1159.         ISBN          0-201-57756-9 (pbk.)     $22.45
  1160.         Library #     006.6765
  1161.  
  1162.  
  1163.  
  1164.    Adobe illustrator 3.0 : the official handbook for designers. 3rd. ed.
  1165.         Author        Bove, Tony ; Fred Davis, Cheryl Rhodes
  1166.         Publisher     New York : Bantam Books, 1991
  1167.         Description   xvi, 420 [8] p. of plates : ill. ; 24 cm.
  1168.         ISBN:         0-553-35385-3 (pbk.)    $24.95 ($31.95 Can.)
  1169.         Library #     Z286. .D47 B66 1991
  1170.  
  1171.  
  1172.  
  1173.    The Adobe Illustrator 3.2 : designer's guide
  1174.    (Sybex Macintosh library series)
  1175.         Author        Holzgang, David A.
  1176.         Publisher     San Francisco : Sybex, c1992
  1177.         Description   xviii, 358 p. : ill. ; 23 cm.
  1178.         ISBN          0-7821-1002-9     $24.95
  1179.         Library #     T385 .H674 1992
  1180.  
  1181.  
  1182.  
  1183.    Adobe type 1 font format.
  1184.    [The Black Book]
  1185.         Author        Adobe Systems Incorporated.
  1186.         Publisher     Reading, MA : Addison-Wesley, c1990.
  1187.         Description   iii, 103 p. : ill. ; 24 cm.
  1188.         ISBN          0-201-57044-0     $14.95 (18.95 Can.)
  1189.         Library #     QA76.73 P67 A36 1990
  1190.  
  1191.         This is the specification for the Type 1 font format. Type 1
  1192.         fonts are the standard outline format found in Adobe PostScript
  1193.         printers, implementations of the Display PostScript system, and
  1194.         available as download able fonts from the Adobe Type Library.
  1195.         This document describes the syntax of the Adobe Type 1 font
  1196.         format, including complete information regarding hints, encoding
  1197.         of character outlines, and the charstring and eexec encryption
  1198.         algorithms.
  1199.  
  1200.  
  1201.  
  1202. |  Apple LaserWriter reference : for the LaserWriter, LaserWriter Plus,
  1203. |  LaserWriter IINT and IINTX.
  1204. |       Author        Apple Computer
  1205. |       Publisher     Reading, MA : Addison-Wesley, c1988
  1206. |       Description   xv, 167 p. ; 24 cm.
  1207. |       ISBN          0-201-19258-6     $19.95
  1208. |       Library #     TK7887.7 .A66 1988
  1209.  
  1210.  
  1211.  
  1212.    Build your own PostScript laser printer and save a bundle. 2nd ed.
  1213.         Author        LaBadie, Horace W.
  1214.         Publisher     Blue Ridge Summit, PA : TAB Books, 1993
  1215.         Description   xviii, 149 p. : ill. ; 25 cm.
  1216.         ISBN          0-8306-4306-0     $19.60
  1217.         Library #     TK7887.7 .L33 1993
  1218.  
  1219.  
  1220.    Creating special effects on the Macintosh.
  1221.         Author        Holzgang, David A.
  1222.         Publisher     Reading, MA : Addison-Wesley, c1992
  1223.         Description   xx, 471 p. : ill. ; 24 cm.
  1224.                       + one computer disk (3 1/2 in.)
  1225.         ISBN          0-201-57779-8     $28.95 ($37.95 Can.)
  1226.         Library #     Z52.5 M28 H64 1991
  1227.  
  1228.  
  1229.  
  1230.    Design essentials.
  1231.         Author        Cohen, Luanne Seymour ; et al.
  1232.         Publisher     Mountain View, CA : Adobe Press, c1992
  1233.         Description   vii, 102 p. : ill. (some col.) 23 x 31 cm.
  1234.                       + 3-D viewing glasses inserted.
  1235.                       At head of title: Professional studio techniques.
  1236.         ISBN          0-672-48538-9     $39.95 ($49.95 Can.)
  1237.         Library #     T385 .D473 1992.
  1238.  
  1239.  
  1240.    Design Techniques with Adobe Illustrator
  1241.         Author        Linda Miles, Betty Wilson
  1242.         Publisher     Sams, 1992
  1243.         ISBN          0-672-30205-5      $39.95
  1244.  
  1245.  
  1246.  
  1247.    Display PostScript programming.
  1248.         Author        Holzgang, David A.
  1249.         Publisher     Reading, MA : Addison Wesley, c1990
  1250.         Description   x, 406 p. : ill. 24 cm.
  1251.         ISBN          0-201-51814-7     $24.95
  1252.         Library #     QA76.73 .P67 H63 1990
  1253.  
  1254.  
  1255.  
  1256.    Encapsulated PostScript : application guide for the
  1257.    Macintosh and PC's.
  1258.         Author        Vollenweider, Peter
  1259.         Publisher     New York ; London : Prentice Hall 1990
  1260.         Description   xvii, 226 p. : ill. ; 24 cm.
  1261.                       Translated from German
  1262.         ISBN          0-13-275-843-1 (pbk.)     $16.95
  1263.         Library #     QA76.73 .P67 V65 1990
  1264.  
  1265.         The book's focus is EPS. However, it is an excellent book full
  1266.         of actual real life PostScript and Encapsulated PostScript
  1267.         applications on Macs, PCs, UNIX, IBM mainframe, and other
  1268.         computer systems.
  1269.  
  1270.  
  1271.  
  1272. |  Expert advisor : Adobe Illustrator.
  1273. |  (The Addison-Wesley expert advisor series)
  1274. |       Author        Burns, Diane ; S. Venit, David Smith
  1275. |       Publisher     Reading, MA : Addison-Wesley, c1988
  1276. |       Description   ix, 350 p., [4] p. of plates : ill. (some col.) ;
  1277. |                     24 cm.
  1278. |       ISBN          0-201-14397-6     $22.95
  1279. |       Library #     T385 .B864 1989
  1280.  
  1281.  
  1282.  
  1283.    Graphic design with PostScript.
  1284.         Author        Kunkel, Gerard
  1285.         Publisher     Glenview, IL :Scott, Foresman, c1990
  1286.         Description
  1287.         ISBN          0-673-38794-1     $29.95
  1288.         Library #     Z286 .D47 K87 1990
  1289.  
  1290.  
  1291.  
  1292.    Halftoning with Adobe Accurate Screens
  1293.         Author        Peter Fink
  1294.         Publisher     Hayden, 1992
  1295.         ISBN          ???    $29.95
  1296.  
  1297.  
  1298.    Hands-on PostScript.
  1299.         Author        Spring, Michael B. ; David S. Dubin
  1300.         Publisher     Carmel IN, : Hayden Books, c1992
  1301.         Description   xx, 431 p. ; 24 cm.
  1302.                       + one computer disk (3 1/2 in.)
  1303.         ISBN          0-672-30185-7     $29.95 ($37.95 Can.)
  1304.         Library #     QA76.73 .P67 S67 1992
  1305.  
  1306.         This is an introduction to PostScript for the novice or casual
  1307.         user. PostScript programming principles are introduced in the
  1308.         context of useful projects (e.g. greeting cards, letterhead,
  1309.         multi-page posters). The book includes five PostScript driver
  1310.         projects in Basic, Pascal, and C. A 3.5" DOS formatted diskette
  1311.         is included with all the source code. It does not cover
  1312.         PostScript level 2.
  1313.  
  1314.  
  1315.  
  1316. |  Illustration techniques with Adobe illustrator for windows.
  1317. |       Author        Miles, Linda ; Betty Wilson
  1318. |       Publisher     Carmel, IN : Hayden, c1992
  1319. |       Description   xxviii, 323 p., [16] p. of plates : ill.
  1320. |                     (some col.) ; 23 cm.
  1321. |                     + one computer disk (3 1/2 in.)
  1322. |       ISBN          0-672-30205-5     $39.95
  1323. |       Library #     006.6869
  1324.  
  1325.  
  1326.  
  1327.    Inside the Apple LaserWriter
  1328.         Author        Hart, Roger
  1329.         Publisher     Glenview, IL : Scott, Foresman, c1989
  1330.         Description   xvii, 293 p. : ill. ; 24 cm.
  1331.         ISBN          0-673-38064-5
  1332.         Library #     TK7887.7 .H38 1989
  1333.  
  1334.  
  1335.  
  1336.    Inside PostScript.
  1337.         Author        Braswell, Frank Merritt
  1338.         Publisher     Berkeley, CA : Peachpit Press c1989
  1339.         Description   various pagings ; 23 cm.
  1340.         ISBN          0-938151-10-X     $37.50
  1341.         Library #     QA76.73 .P67 B73 1989
  1342.  
  1343.         Inside PostScript essentially takes one on a tour of the
  1344.         standardinternal PostScript code in most printers. The author
  1345.         has worked extensively with an interpreter. (in PostScript
  1346.         terms, no low-level hardware stuff here like cexec and
  1347.         internaldict).
  1348.  
  1349.  
  1350.  
  1351.    Laserwriter Reference
  1352.         Author        Apple Computer
  1353.         Publisher     Addison-Wesley, 1988
  1354.         ISBN          0-201-19258-6   $19.95
  1355.  
  1356.  
  1357.  
  1358.    Learning PostScript : a visual approach.
  1359.         Author        Smith, Ross
  1360.         Publisher     Berkeley, CA : Peachpit Press, 1990
  1361.         Description   various pagings
  1362.         ISBN          0-938151-12-6     $ 22.95
  1363.         Library #     QA76.73 .P67 S55 1990
  1364.  
  1365.         Learning PostScript is a tutorial on the PostScript language.
  1366.         It is very appealing, very easy to follow and filled with
  1367.          examples. Each example occupies two pages. A brief explanation
  1368.         and source code is on the left page, and the resultant print-out
  1369.         is on the facing right page. The book starts off very simply for
  1370.         beginners, and covers a lot of material at the end for experts.
  1371.         It was written before level 2 PostScript. In the later half of
  1372.         the book, a few examples can executed only if an additional disk
  1373.         is purchased. The code for LPAVA is $ 20 from Smith Consultants,
  1374.         834 Third St., Suite B, Santa Rosa, CA 95404, U.S.A. fax number:
  1375.         415-524-9775
  1376.  
  1377.  
  1378.  
  1379.    Linotronic imaging handbook : the desktop publisher's
  1380.    guide to high-quality text and images.
  1381.         Author        Cavuoto, James ; Stephen Beale
  1382.         Publisher     Torrance, CA : Micro Publishing Press, 1990
  1383.         Description   vi, 217 p. : ill. (some col.) ; 23 cm.
  1384.         ISBN          0-941845-06-0     $27.95
  1385.         Library #     Z253.4 .L56 C387 1990
  1386.  
  1387.  
  1388.  
  1389. |  Mastering Adobe illustrator.
  1390. |       Author        Holzgang, David A.
  1391. |       Publisher     San Francisco : Sybex, c1988
  1392. |       Description   xviii, 330 p. : ill. ; 23 cm.
  1393. |       ISBN          0895884631 (pbk.)
  1394. |       Library #     Z286 .D4 H67 1988
  1395.  
  1396.  
  1397.  
  1398.    Mastering Adobe Illustrator 88.
  1399.         Author        McClelland, Deke ; Craig Danuloff
  1400.         Publisher     [Boulder, CO] : Publishing Resources Inc. ;
  1401.                       [Homewood, IL] : Dow Jones Irwin, c1989
  1402.         Description   xii, 298, [21] p. : ill ; 24 cm.
  1403.         ISBN          1-55623-157-1 (Dow Jones Irwin)     $24.95
  1404.         Library #     Z286 .D47 M375 1989
  1405.  
  1406.  
  1407.  
  1408.    The official Adobe Photoshop handbook.
  1409.         Author        Biedny, David ; Bert Monroy
  1410.         Publisher     Toronto ; New York : Bantam Books, 1991
  1411.         Description   xxxviii, 423 p. : ill. (some col.) ; 24 cm.
  1412.         ISBN          0-553-34876-0     $26.95 ($33.95 Can.)
  1413.         Library #     QA76.8 .M3  B52 1991
  1414.  
  1415.  
  1416.  
  1417. |  PostScript by example.
  1418. |       Authors        McGilton, Henry ; Mary Campione
  1419. |       Publisher      Reading, MA : Addison-Wesley, c1992.
  1420. |       Description    xviii, 620 p. : ill. (some col.) ; 24 cm.
  1421. |       ISBN           0-201-63228-4     $29.95 ($38.95 Can.)
  1422. |       Library #      QA76.73 .P67 M34 1992
  1423. |
  1424. |       PostScript by example is a tutorial for PostScript people at
  1425. |       all levels. It covers level 2 PostScript. The book starts
  1426. |       at novice level and works through to Level Two composite fonts,
  1427. |       patterns, forms, color, halftones, Display PostScript rectangle
  1428. |       operators and text operators. It contains a chapter on practical
  1429. |       issues of downloading fonts, talking to printers, and error
  1430. |       handling. 620 pages containing over 500 fragments of PostScript
  1431. |       code and over 750 illustrations. A long-awaited ``upgrade''
  1432. |       to the Blue Book.
  1433. |       Henry McGilton can be reached by email as henry@trilithon.com.
  1434. |       Mary Campione can be reached by email as mem@taranis.com.
  1435. |       A disk containing 13,000 lines of PostScript code from the book
  1436. |       can be ordered separately for $ 20 from: Trilithon Software, Two
  1437. |       Ohlone, Portola Valley, CA 94028, U.S.A.
  1438. |
  1439. |       Or, send email to info@trilithon.mpk.ca.us.
  1440.  
  1441.  
  1442.    A postscript cookbook.
  1443.         Author        Thomas; Barry
  1444.         Publisher     New York : Van Nostrand Reinhold, 1988.
  1445.         Description   vii, 144 p. : ill. ; 24 cm.
  1446.         ISBN          0-442-23686-7     $9.98
  1447.         Library #     QA76.73 .P67 T48 1988
  1448.  
  1449.  
  1450.  
  1451. |  PostScript screening : Adobe accurate screens.
  1452. |       Author        Fink, Peter
  1453. |       Publisher     Mountain View, CA : Adobe Press, c1992.
  1454. |       Description   xvi, 175 p. : ill. ; 25 cm.
  1455. |       ISBN          0-672-48544-3 (pbk.)
  1456. |       Library #     T385 .F55 1992
  1457. |
  1458. |       Explains in detail all the issues and specifically covers Adobe
  1459. |       Accurate Screens -- Adobes' own screening technology. Peter Fink
  1460. |       is an expert on the subject of halftone screens as they relate
  1461. |       to color issues.
  1462.  
  1463.  
  1464.  
  1465. |  PostScript, Eine Umfassende Einfuhrung in die Programmierung
  1466. |       Author        Wilfred Soker
  1467. |       Publisher     Vieweg & Sohn Verlag GmbH, Postfach 5829,
  1468. |                     D-6200, Wiesbaden 1, Germany
  1469. |       ISBN          3-528-14711-3
  1470.  
  1471.  
  1472.  
  1473.    PostScript font handbook - a directory of type 1 fonts. Rev. ed.
  1474.         Authors       Grosvenor, Jonathan editor ; Kaye Morrison,
  1475.                       Alexandia Pim
  1476.         Publisher     Reading, MA : Addison-Wesley, c1992.
  1477.         Description   x, 425 p. : ill ; 24 cm.
  1478.         ISBN          0-201-56893-4     $24.95 ($31.95 Can.)
  1479.         Library #     Z250.7 .P67 1992
  1480.  
  1481.  
  1482.  
  1483.    PostScript fuer Workstations
  1484.         Author        Vollenweider, Peter  (rzuvo@rzu.unizh.ch)
  1485.         Publisher     Reading, MA : Addison-Wesley, 1992.
  1486.         ISBN          3-89319-459-2
  1487.  
  1488.         Dieses Buch ist in Deutsche geschrieben. Es beschreibt
  1489.         PostScript fuer Workstations, mit Display PostScript, PostScript
  1490.         2, und Farben.
  1491.         This book is written in German. It describes using PostScript on
  1492.         workstations. It covers Display PostScript, PostScript Level 2,
  1493.         and colors.
  1494.  
  1495.  
  1496.    PostScript Language Program Design.
  1497.    [The Green Book]
  1498.         Author        Adobe Systems Incorporated ; Glenn Reid
  1499.         Publisher     Reading , MA : Addison-Wesley, c1988
  1500.         Description   xii, 224 p. ; 23 cm.
  1501.         ISBN          0-201-14396-8 (pbk.)     $22.95
  1502.         Library #     QA76.73 .P67 R45 1988
  1503.  
  1504.         PostScript Language Program Design is intended to teach the
  1505.         fundamentals of designing PostScript language programs and
  1506.         to show how the language works, so the your programs will be
  1507.         fast, well-behaved, easy to understand, and portable.
  1508.         Code Examples: $ 15 from the developer support hotline. Free
  1509.         from the Adobe mail server (see Section 6, ``About Adobe'').
  1510.  
  1511.  
  1512.    PostScript Language Reference Manual. 1st ed.
  1513.    [The Old Red Book]
  1514.         Author        Adobe Systems Inc.
  1515.         Publisher     Reading, MA : Addison-Wesley, 1985.
  1516.         Description   ix, 299 p. : ill. ; 24 cm.
  1517.         ISBN          0-201-10174-2
  1518.         Library #     QA76.73 .P67 P67 1986
  1519.  
  1520.         The first edition of the reference manual. It describes
  1521.         PostScript level 1 only. It is a subset of the PostScript level
  1522.         2 book, but is still more common and costs less.
  1523.  
  1524.  
  1525.    PostScript language reference manual. 2nd ed.
  1526.    [The Big Red Book]
  1527.         Author        Adobe Systems Incorporated ; [authors, Ed Taft,
  1528.                       Jeff Walden ; editing, Jeff Walden, Paul Engstrom
  1529.                       ; illustration Carl Yoshihara, Wendy Ball,
  1530.                       Dayna Portfield]
  1531.         Publisher     Reading, MA : Addison-Wesley, c1990
  1532.         Description   viii 764 p. : ill. 24 cm.
  1533.         ISBN          0-201-18127-4     $28.95 ($37.95 Can.)
  1534.         Library       QA76.73 .P67 P67 1990
  1535.  
  1536.         PostScript language reference manual is the book that defines
  1537.         the PostScript language. The second edition not only defines
  1538.         Level 1 PostScript, but also encompasses the color, composite
  1539.         font, file system, and DPS extensions and the PostScript
  1540.         language Level 2.
  1541.  
  1542.  
  1543.    PostScript language tutorial and cookbook.
  1544.    [The Blue book]
  1545.         Author        Adobe Systems Incorporated
  1546.         Publisher     Reading, MA : Addison Wesley, 1985
  1547.         Description   x, 243 p. : ill. ; 24 cm.
  1548.         ISBN          0-201-10179-3 (pbk.)      $16.95
  1549.         Library #     QA76.73 .P67 P68 1985
  1550.  
  1551.         PostScript language tutorial and cookbook is the most common
  1552.         tutorial book on PostScript. It provides an easy, informal
  1553.         introduction to the PostScript language and graphics primitives.
  1554.         The cookbook is a collection of programs that are offered as
  1555.         examples of PostScript usage. These samples have been chosen
  1556.         both as illustrations of the functional range of PostScript
  1557.         and as useful ingredients for inclusion in application packages.
  1558.         Code Examples: $ 15 from the developer support hotline. Free
  1559.         from the Adobe mail server (see Section 6, ``About Adobe'').
  1560.  
  1561.  
  1562.    PostScript programmer's reference guide : featuring PhoenixPage.
  1563.         Author        Holzgang, David A.
  1564.         Publisher     Glenview, IL : Scott, Foresman, c1989
  1565.         Description   x, 486 p. : ill. ; 23 cm.
  1566.         ISBN          0-673-38574-4     $24.95
  1567.         Library #     QA76.73 .P67 H64 1989
  1568.  
  1569.         An authoritative guide for programmers, developers, or
  1570.         anyone who wants to get the most out of PostScript. It offers
  1571.         clear instructions, a complete language reference section, and a
  1572.         cookbook of hands-on sample routines. (avail for $ 20 extra on
  1573.         disk) ... It includes complete information on PhoenixPage/PS,
  1574.         Phoenix Technologies' fully PostScript-compatible language.
  1575.  
  1576.  
  1577.    Programming the display PostScript system with NeXTSTEP.
  1578.    [The Purple Book]
  1579.         Author        Adobe Systems Incorporated ; [author Ken Fromm]
  1580.         Publisher     Reading, MA : Addison-Wesley, c1992
  1581.         Description   xxvii, 380 p. ill. ; 22 cm.
  1582.         ISBN          0-201-58135-3     $26.95 ($34.95)
  1583.         Library #     QA76.73 .P67 P76 1991
  1584.  
  1585.         Written for the NeXT programming environment; however, much of
  1586.         the information it contains applies to all Display PostScript
  1587.         developers. The book explains the language extensions commonly
  1588.         used within applications, describes many of the key aspects of
  1589.         the PostScript language imaging model, and provides a framework
  1590.         for creating Display PostScript language applications.
  1591.  
  1592.  
  1593.    Programming the Display PostScript System with X.
  1594.         Author: Adobe Systems Inc.
  1595.         Publisher: Addison-Wesley
  1596.         Cost: $ 26.95
  1597.  
  1598.         Written specifically for developers using the X Window System.
  1599.         It is intended to help X application developers improve quality,
  1600.         optimize performance, and minimize development cost. Featuring a
  1601.         Programming Guide with advice on how to write robust, efficient
  1602.         Display PostScript applications, the book also contains a new
  1603.         Toolkit manual and the standard Display PostScript reference
  1604.         manuals.
  1605.  
  1606.  
  1607.    Programming the LaserWriter
  1608.    (Macintosh inside out series)
  1609.         Author        Holzgang, David A.
  1610.         Publisher     Reading, MA : Addison-Wesley, c1991
  1611.         Description   xxv, 439 p. ill. ; 23 cm.
  1612.         ISBN          0-201-57068-8     $24.95
  1613.         Library #     TK7887.7 .H65 1991
  1614.  
  1615.    Rapid reference guide to System 7, the LaserWriter Family,
  1616.    and Hypercard. (Business One Irwin rapid reference series)
  1617.         Author        Fraase, Michael
  1618.         Publisher     Homewood, IL : Business One Irwin, c1993
  1619.         Description   xx, 282 p. : ill. ; 22 cm.
  1620.         ISBN          1556239025     $24.95
  1621.         Library #     QA76.76 .O63 F375 1993
  1622.  
  1623.  
  1624.    Real world PostScript : techniques from PostScript professionals.
  1625.    [The Orange Book]
  1626.         Author        Roth, Stephen F., editor
  1627.         Publisher     Reading, MA : Addison-Wesley, c1988.
  1628.         Description   xiv, 383 p. [4] p. of plates : ill. (some col.) ;
  1629.                       24 cm.
  1630.         ISBN          0-201-06663-7 (pbk.)     $22.95
  1631.         Library #     Z286 .D47 R4 1988
  1632.  
  1633.         A collection of articles dealing with ``real world'' PostScript
  1634.         language issues and specific applications such as font creation,
  1635.         color separation, kerning, halftoning, various other topics.
  1636.         It contains a text formatter written in PostScript, and
  1637.         concentrates on doing very sophisticated things with fonts and
  1638.         dictionaries.
  1639.  
  1640.         Short overview of chapters:
  1641.  
  1642.         PostScript As A Design Tool; PostScript As A Programming
  1643.         Language; Writing Device Independent PostScript; Kerning,
  1644.         Tracking And Letterspacing, Precise Character Bounding Boxes;
  1645.         Building Fonts; Building Smart Fonts; Font Encoding Vector
  1646.         Compatibility; Building A PostScript Typeface; PostScript Color
  1647.         Operations; PostScript Color Separations; A Spread From Graphic
  1648.         Perspective; A PostScript Four-Color Poster; Graphing And
  1649.         Typesetting With PostScript; The Evolution Of A Complex
  1650.         Geometric Logo
  1651.  
  1652.  
  1653.    Running PostScript from MS-DOS. 1st ed.
  1654.         Author        Glover, Gary
  1655.         Publisher     Blue Ridge Summit, PA : Windcrest, c1989.
  1656.         Description   ix, 209 p. : ill. ; 28 cm.
  1657.         ISBN          0-8306-2998-X     $21.60
  1658.         Library #     QA76.73 .P67 G56 1989
  1659.  
  1660.         Provides a good and brief introduction to PostScript and has
  1661.         lots of useful information on printing PostScript from PCs.
  1662.  
  1663.  
  1664.  
  1665.    Taking advantage of PostScript.
  1666.         Author        Sherman, John F.
  1667.         Publisher     Dubuque, IA : Wm. C. Brown Publishers, c1992
  1668.         Description   ix, 326 p. : ill. ; 28 cm.
  1669.         ISBN          0-697-14032-6
  1670.         Library #     QA76.73 .P67 S54 1992
  1671.  
  1672.         Graphically and visually oriented and includes a section
  1673.         on PostScript Level 2.
  1674.  
  1675.  
  1676.  
  1677. |  Terminal Buch, PostScript Fonts und Programmiertechnik
  1678. |       Author        Thomas Merz
  1679. |       Publisher     R. Oldenburg Verlag, Munchen, Germany
  1680. |       ISBN          3-486-21674-0
  1681.  
  1682.  
  1683.  
  1684.    Thinking in PostScript.
  1685.         Author        Reid, Glenn C.
  1686.         Publisher     Reading, MA : Addison-Wesley, c1990
  1687.         Description   xiii, 221 p. : ill. ; 24 cm.
  1688.         ISBN          0-201-52372-8     $22.95 ($29.95 Can.)
  1689.         Library #     QA76.73 .P67 R46 1990
  1690.  
  1691.         Guide to developing programming techniques and to learning
  1692.         how to use the PostScript tool kit. In this book you can find
  1693.         some useful techniques even if you think of yourself as an
  1694.         expert PS programmer. It overlaps very little with existing
  1695.         material. You can find there numerous practical examples in all
  1696.         areas of PS language programming, including the Display PS
  1697.         system. In this volume you will also find: (a) never-before-
  1698.         published information on the PS language (b) useful algorithms
  1699.         for loops, conditionals, and I/O (c) detailed coverage of files,
  1700.         strings, and dictionaries (d) simple and elegant programming
  1701.         techniques
  1702.  
  1703.         The books comes recommended by many. There are also exercises
  1704.         after each Chapter with the results at the end of the book. You
  1705.         can really find examples how to define new useful operators or
  1706.         procedures which you cannot find in the Adobe books.
  1707.  
  1708.         To get the examples from the book for free, send email to the
  1709.         author, glenn@rightbrain.com.
  1710.  
  1711.  
  1712.  
  1713.    Understanding PostScript. 3rd ed.
  1714.         Author        Holzgang, David A.
  1715.         Publisher     San Francisco : Sybex, c1992
  1716.         Description   xxxiii, 515 p. : ill. 23 cm.
  1717.                       "For PostScript levels 1 & 2"--Cover p. [1]
  1718.         ISBN          0-7821-1059-2     $29.95
  1719.         Library #     QA76.73 .P67 H65 1992
  1720.  
  1721.  
  1722.    Understanding PostScript Programming. 2nd ed.
  1723.  
  1724.         Author        Holzgang, David A.
  1725.         Publisher     San Francisco : Sybex, 1988
  1726.         Description   xxxii, 472 p. : ill. ; 23 cm.
  1727.         ISBN          0-89588-566-2
  1728.         Library #     QA76.73 .P67 H65 1988
  1729.  
  1730.  
  1731.  
  1732.    The Verbum book of PostScript illustration. 1st ed.
  1733.    (The Verbum electronic art & design series.)
  1734.         Author        Gosney, Michael ; Linnea Dayton, Janet Ashford
  1735.         Publisher     Redwood City, CA : M&T Books, 1990
  1736.         Description   vii, 213 p. : ill. (some col.) ; 28 cm.
  1737.         ISBN          1-55851-089-3     $29.95
  1738.         Library #     QA76.73 .P67 G57 1990
  1739.  
  1740.  
  1741. Subject: 5.2 Publishers
  1742.  
  1743.     Most of the above books should be available in any big bookstore
  1744.     that has a computer section. Or contact the publishers:
  1745.  
  1746.  
  1747.     Addison-Wesley,
  1748.       Retail Sales Group, Addison-Wesley Publishing Company, Inc., One
  1749.       Jacob Way, Reading, MA 01867, U.S.A. Phone 800-447-2226 or
  1750.       617-944-3700, Fax 617-942-1117.
  1751.  
  1752.  
  1753.     Addison-Wesley Publishing Company,
  1754.       2200 Powell Street, Emeryville, California 94608 U.S.A. Phone
  1755.       (510) 601-4000
  1756.  
  1757.  
  1758.     Adobe Press
  1759.       , Adobe Systems, Inc. 1585 Charleston Road, Mountain View, CA
  1760.       94039, Phone 415-961-4400. Toll free 800-833-6687. Adobe Press is
  1761.       partially a misnomer, it is not a independent publishing unit but
  1762.       more like a customer or documentation service of Adobe Systems,
  1763.       Inc. The Red, Blue, Green, and Black Books can be purchased from
  1764.       Adobe Systems by calling toll free, 800-83-FONTS (800-833-6687).
  1765.  
  1766.  
  1767. |   Busn One Irvin
  1768. |     , Business 1 Irvin, Division of Richard D. Irvin, Inc. 1818 Ridge
  1769. |     Road, Homewood IL, 60430. Phone 708-798-6000. Toll free
  1770. |     800-634-3966. Imprint: Pub. by Dow Jones (Dow Jones Books).
  1771.  
  1772.  
  1773.     Bantam
  1774.       , Bantam Books, Inc. Division of Bantam Doubleday Dell. 666 Fifth
  1775.       Avenue, New York, NY 10103. Phone 212-765-6500. Toll free
  1776.       800-223-6834.
  1777.  
  1778.  
  1779.     Dow Jones Irvin
  1780.       See Busn One Irvin.
  1781.  
  1782.  
  1783.     Hayden Books,
  1784.       Imprint of Sams.
  1785.  
  1786.  
  1787.     M & T Bks,
  1788.       M & T Books. 501 Galveston Drive, Redwood City, CA 94063-4728.
  1789.       Phone 415-366-3600. Toll free 800-533-4372 ; 800-356-2002.
  1790.  
  1791.  
  1792.     Micro Publishing Press
  1793.       21150 Hawthorne Boulevard, Suite 104, Torrance, California 90503
  1794.       U.S.A. Phone 213-371-5787.
  1795.  
  1796.  
  1797.     Peachpit Press,
  1798.       1085 Keith Ave., Berkeley, CA 94708, U.S.A. Phone 415-527-8555.
  1799.       Toll free 800-283-9444.
  1800.  
  1801.  
  1802.     Prentice Hall,
  1803.       Prentice Hall Press. Division of Simon Schuster, Inc. 15 Columbus
  1804.       Circle, New York, NY 10023. Phone 201-767-5937. Toll free
  1805.       800-223-2348. Orders to: 200 Old Tappan Road, Old Tappan, NJ
  1806.       07675.
  1807.  
  1808.  
  1809.     Sams,
  1810.       Division of Macmillan Computer Publishing. 11711 North College
  1811.       Avenue, Suite 140, Carmel, IN 46032. Phone 317-573-2500. Toll
  1812.       free 800-257-5755. Orders to Macmillan Computer Publishing, 8219
  1813.       Northwest Boulevard, Indianapolis, IN 46278. Imprint: Hayden
  1814.       Books
  1815.  
  1816.  
  1817.     Scott, Foresman and Company,
  1818.       Subsidiary of HarperCollins Publishing Co. 1900 East Lake Avenue,
  1819.       Glenview, IL 60025. Phone 708-729-3000.
  1820.  
  1821.  
  1822. |   Sybex, Inc.
  1823. |     2021 Challenger Drive, Alameda, CA 94501. Phone 415-523-8223.
  1824. |     Toll free 800-227-2346. Imprint: Sybex Computer Books
  1825.  
  1826.  
  1827.     TAB Books,
  1828.       Division of McGraw-Hill Inc. P.O. Box 40, Blue Ridge Summit, PA
  1829.       17294-0850. Phone 717-794-2191. Toll free 800-822-8138 ;
  1830.       800-233-1128. Imprint: Windcrest Books
  1831.  
  1832.  
  1833.     Windcrest Books
  1834.       Imprint of TAB Books.
  1835.  
  1836.  
  1837.     Van Nostrand Reinhold,
  1838.       Division of Thomson Publishing Corp. 115 Fifth Avenue, New York,
  1839.       NY, 10003. Phone 212-254-3232. Toll free 800-926-2664. Orders to:
  1840.       7625 Empire Dr., Florence, KY 41022. Phone 606-525-6600
  1841.  
  1842.  
  1843. |   Wm C Brown,
  1844. |     Brown, William C. Publishing. 2460 Kerper Boulevard, Dubuque, IA
  1845. |     52001. Phone 319-588-1451. Toll free 800-338-5578.
  1846.  
  1847.  
  1848. Subject: 6 About Adobe
  1849.  
  1850.     PostScript was created by Adobe Systems Incorporated, which offers
  1851.     information and sells programs pertaining to PostScript.
  1852.  
  1853.     Currently the only large PostScript company that I have information
  1854.     on is Adobe. I would be happy to include information about others.
  1855.  
  1856.  
  1857. Subject: 6.1 How do I get in touch with Adobe?
  1858.  
  1859.  
  1860.   Adobe Systems Incorporated      Main phone: +1-415-961-4400
  1861.   1585 Charleston Road            Main FAX:   +1-415-961-3769
  1862.   P.O. Box 7900
  1863.   Mountain View, CA 94039-7900
  1864.  
  1865.  
  1866.     If you want technical help using Adobe retail products (e.g. ATM,
  1867.     Adobe Illustrator, Adobe Fonts): Adobe forum on CompuServe, call
  1868.     1-408-986-6500 (for Macintosh) or 1-408-986-6530 (for Windows,
  1869.     Unix) Also use this number to report bugs in retail products. Adobe
  1870.     also has an automated tech support line, which will fax technical
  1871.     notes and product literature to you, and attempt to answer common
  1872.     questions via a menu-driven system. That number is 1-800-235-0078.
  1873.  
  1874.     For sales information on Adobe retail products (prices, catalogues,
  1875.     etc.), call +1-800-235-0078 (fax-back brochures) or +1-800-833-6687
  1876.     (applications sales)
  1877.  
  1878.     The Developer's Hotline is +1-415-961-4111 (Voicemail) (note:
  1879.     members have priority, but they'll take questions from general
  1880.     public.) Also use this number for information about the ADA or
  1881.     Adobe SDK's.
  1882.  
  1883.     To suggest product enhancements, write or fax to ``Product Manger,
  1884.     product name' at address above.
  1885.  
  1886.     In Europe: Adobe Systems BV, Europlaza, Hoogoorddreef 51a, 1101 BE
  1887.     Amsterdam Z-O, NETHERLANDS. TEL +31-20-65-11-200. FAX
  1888.     +31-20-65-11-300.
  1889.  
  1890.     In the eastern United States: Adobe Sys. Inc., 24 New England
  1891.     Executive Park, Burlington MA 01803. TEL +1-617-273-2120. FAX
  1892.     +1-617-273-2336.
  1893.  
  1894.     In Japan: Adobe Systems Japan, Swiss Bank House, 4-1-8 Toranomon,
  1895.     Minato ku, Tokyo 105 JAPAN. TEL +81-3-3437-8950. FAX
  1896.     +81-3-3437-8968.
  1897.  
  1898.  
  1899. Subject: 6.2 What can Adobe do for me?
  1900.  
  1901.     Adobe is just one of many companies producing products for
  1902.     PostScript, but it does produce a lot of the best.
  1903.  
  1904.     Adobe offers two resources for software developers.
  1905.  
  1906.    1. Membership in the Adobe Developers Association (ADA) ( $
  1907.       195/year)
  1908.  
  1909.    2. PostScript Language Software Development Kit (SDK) ( $ 500, $ 250
  1910.       for ADA)
  1911.  
  1912.     The Developer's Association is Adobe's way of knowing who has a
  1913.     serious interest in technical information. Membership includes
  1914.     monthly technical newsletter, phone technical support, discounts on
  1915.     software and hardware. Membership is $ 195/year for each
  1916.     individual.
  1917.  
  1918.     The PostScript Language Software Development Kits collect all
  1919.     Adobe's technical literature for a given platform into a single
  1920.     package. There are four versions, for the Mac, MS-DOS/Windows,
  1921.     NeXTStep, and X/Windows. Each SDK is $ 500 list, $ 250 for ADA
  1922.     members.
  1923.  
  1924.     A selection of free technical documents is available from Adobe's
  1925.     file server and anonymous ftp archive (ftp.adobe.com). It includes
  1926.     specs (including the aforementioned EPS specification), some tech
  1927.     notes, sample programs, a large collection of AFM files and PPD
  1928.     files. For more information on the file server, send the one-word
  1929. |   message ``help'' to ps-file-server@adobe.com. These documents are
  1930. |   also available by mail, although they are not necessarily free;
  1931.     call the Developers Line and ask for the documents catalog.
  1932.  
  1933.     The contents of both ps-file-server and the ftp archive are
  1934.     nominally the same, although they are currently maintained on two
  1935.     separate machines.
  1936.  
  1937.  
  1938. Subject: 7 Programming in PostScript
  1939.  
  1940.  
  1941. Subject: 7.1 What is PostScript level 2?
  1942.  
  1943.     (See the Section 11, ``About PostScript 2''.)
  1944.  
  1945.  
  1946. Subject: 7.2 Should I learn level 2 PostScript?
  1947.  
  1948.     Yes, because Level Two will soon become the standard. Application
  1949.     developers using PostScript need to become aware of the new
  1950.     capabilities and how to take advantage of them.
  1951.  
  1952.     There are many good books on PostScript 2. (See Section 5,
  1953.     ``Books''.)
  1954.  
  1955.  
  1956. Subject: 7.3 Where can I find examples of PostScript code?
  1957.  
  1958.     Many other books on PostScript make example PostScript code
  1959.     available. ``Thinking in PostScript'', by Glenn Reid, is the only
  1960.     book I know of that allows its examples to be freely distributed.
  1961.     (See Section 5, ``Books''.)
  1962.  
  1963.     All the examples in ``the blue book'' are available from the Adobe
  1964.     file server (See Section 5, ``Books''.)
  1965.  
  1966.     See the question ``How can I browse through PostScript programs?''
  1967.     in the comp.sources.postscript FAQ.
  1968.  
  1969.  
  1970. Subject: 7.4 What is the physical size of the page?
  1971.  
  1972. |   This depends on what print medium you are using. Paper comes in a
  1973. |   number of standard sizes:
  1974. |
  1975. |
  1976. |         Paper Size                      Dimension (in points)
  1977. |         ------------------------------  ---------------------
  1978. |         Comm #10 Envelope               297 x 684
  1979. |         C5 Envelope                     461 x 648
  1980. |         DL Envelope                     312 x 624
  1981. |         Folio                           595 x 935
  1982. |         Executive                       522 x 756
  1983. |         Letter                          612 x 792
  1984. |         Legal                           612 x 1008
  1985. |         Ledger                          1224 x 792
  1986. |         Tabloid                         792 x 1224
  1987. |         A0                              2384 x 3370
  1988. |         A1                              1684 x 2384
  1989. |         A2                              1191 x 1684
  1990. |         A3                              842 x 1191
  1991. |         A4                              595 x 842
  1992. |         A5                              420 x 595
  1993. |         A6                              297 x 420
  1994. |         A7                              210 x 297
  1995. |         A8                              148 x 210
  1996. |         A9                              105 x 148
  1997. |         B0                              2920 x 4127
  1998. |         B1                              2064 x 2920
  1999. |         B2                              1460 x 2064
  2000. |         B3                              1032 x 1460
  2001. |         B4                              729 x 1032
  2002. |         B5                              516 x 729
  2003. |         B6                              363 x 516
  2004. |         B7                              258 x 363
  2005. |         B8                              181 x 258
  2006. |         B9                              127 x 181
  2007. |         B10                             91 x 127
  2008. |
  2009. |   To determine what print mediums are available, check the PPD file
  2010. |   for your printer, under the PageSize keyword.
  2011.  
  2012.  
  2013. Subject: 7.5 What is the Imagable Area of the page
  2014.  
  2015. |   The initial clipping path gives you the size of the imagable area.
  2016. |   Use ``clippath pathbbox'' to get these coordinates. If you must
  2017. |   know the size of the device's imageable area, use the sequence
  2018. |   ``gsave initclip clippath pathbbox grestore'', but this will
  2019. |   prevent an enclosing application from using the clippath to achieve
  2020. |   some special effects (such as multiple pages per page).
  2021. |
  2022. |   PPD files (see section 2 of the FAQ, printers) contain information
  2023. |   on what paper sizes, as well as the Imagable Area for each,
  2024. |   specific to each printer. A Postscript code fragment (called
  2025. |   ``?ImageableArea'') is described in a PPD file, which determines
  2026. |   the current Imageable Area for that printer.
  2027.  
  2028.  
  2029. Subject: 7.6 Why can't I do a pathforall after a charpath ?
  2030.  
  2031.     (See Section 4, ``Fonts'', question ``Why are Adobe fonts
  2032.     hidden?''.)
  2033.  
  2034.  
  2035. Subject: 7.7 How do I center a string of text around a point?
  2036.  
  2037.     Level 1 PostScript has two operators that can extract information
  2038.     about the metrics of characters: ``stringwidth'' and ``charpath''.
  2039.  
  2040.     The ``stringwidth'' operator returns the advance width of its
  2041.     string operand. This is the distance the current point would be
  2042.     moved by a ``show'' operation on the same string. ``stringwidth''
  2043.     returns two numbers on the stack, representing the x and y
  2044.     components of the advance width. Usually the y component is zero
  2045.     because most fonts are displayed along a horizontal line, moving
  2046.     the current point only in the x direction.
  2047.  
  2048.     Also note that the ``stringwidth'' usually does not give an exact
  2049.     measure of the area of the page that will be touched by its
  2050.     operand. The letters can either project a little over the
  2051.     boundaries or fall a little within (leaving a touch of whitespace).
  2052.  
  2053.     If all that an application requires is horizontal centering of a
  2054.     long string of text, the result returned by ``stringwidth'' is
  2055.     sufficient. A common technique is
  2056.  
  2057.  
  2058.           x y moveto
  2059.           (string) dup stringwidth pop 2 div neg 0 rmoveto show
  2060.  
  2061.     (This code makes the assumption that the y component of advance
  2062.     width is irrelevant.)
  2063.  
  2064.     The ``charpath'' operator extracts the graphic shapes of its string
  2065.     operand and appends them to the current path in the graphic state.
  2066.     These shapes can then be processed by other PostScript operators.
  2067.     To get the actual size of the area touched by a character a simple
  2068.     approach is
  2069.  
  2070.  
  2071.           gsave
  2072.           newpath
  2073.           0 0 moveto
  2074.           (X) false charpath flattenpath pathbbox
  2075.           grestore
  2076.  
  2077.     This code places four numbers on the stack, representing the
  2078.     coordinates of the lower left and upper right corners of the
  2079.     bounding box enclosing the character ``X'' rendered with the
  2080.     current point at (0,0). Leaving the flattenpath out will cause it
  2081.     to be less accurate, but it will take up less memory and be faster.
  2082.  
  2083.     There are two things to be careful about when using the code shown
  2084.     above:
  2085.  
  2086.  
  2087.  
  2088.    1. There are severe limits on the size of the string operand,
  2089.       related to the limit on the number of elements in a graphic path.
  2090.       The PostScript Language Reference Manual recommends taking
  2091.       ``charpath''s one character at a time.
  2092.  
  2093.  
  2094.    2. If user space is rotated or skewed with respect to device space,
  2095.       the result from ``pathbbox'' may be larger than expected;
  2096.       ``pathbbox'' returns a rectangle oriented along the user space
  2097.       coordinate axes, which fully encloses a (possibly smaller)
  2098.       rectangle oriented along the coordinate axes of device space. If
  2099.       user space is rotated at an integer multiple of 90 degrees these
  2100.       two rectangles will be the same, otherwise the rectangle in user
  2101.       space will be larger.
  2102.  
  2103.     So, to center text vertically one must get the bounding boxes of
  2104.     all the characters in the string to be displayed, find the minimum
  2105.     and maximum y coordinate values, and use half the distance between
  2106.     them to displace the text vertically. This still may not do a very
  2107.     good job, since this provides centering based on extrema, not on
  2108.     the optical center of the string (which is more related to a sort
  2109.     of ``center of mass'' of the text).
  2110.  
  2111.     If an application does this repeatedly, it would be wise to store
  2112.     the bounding boxes in an array indexed by character code, since
  2113.     ``charpath'' is a slow operation.
  2114.  
  2115.     Font metric information is available outside of a PostScript
  2116.     printer in font metrics files, available from the font vendor. A
  2117.     program generating PostScript output can obtain metrics from these
  2118.     files rather than extracting the metrics in the printer.
  2119.  
  2120.  
  2121. Subject: 7.8 How can I concatenate two strings together?
  2122.  
  2123.  
  2124.   %% string1 string2 append string
  2125.   % Function: Concatenates two strings together.
  2126.   /append {
  2127.            2 copy length exch length add  % find the length of the new.
  2128.            string dup     % string1 string2 string string
  2129.            4 2 roll       % string string string1 string2
  2130.            2 index 0 3 index
  2131.            % string string string1 string2 string 0 string1
  2132.            putinterval    % stuff the first string in.
  2133.            % string string string1 string2
  2134.            exch length exch putinterval
  2135.   } bind def
  2136.  
  2137.  
  2138. Subject: 7.9 What do I do when I get stack overflow/underflow?
  2139.  
  2140.     These errors are among the most common in PostScript.
  2141.  
  2142.     When I get a stack overflow, that is usually a sign that a routine
  2143.     is leaving an object on the stack. If this routine gets called 2000
  2144.     times, it leaves 2000 objects on the stack, which is too many.
  2145.  
  2146.     When I get a stack underflow, that is a sign that either: (A) one
  2147.     of the routines in the program doesn't work, and never has or (B)
  2148.     one of the routines in the program works, but expects to be called
  2149.     with some arguments left on the stack.
  2150.  
  2151.     There is no such thing as a PostScript debugger right now. For now,
  2152.     the best that you can do to debug your program is to put in lots of
  2153.     print statements. Learn to use the PostScript pstack command, and
  2154.     use an online interpreter so you don't have to run to the printer
  2155.     for each debugging cycle.
  2156.  
  2157.     Use an error handler to learn more about what exactly is happening
  2158.     when your program crashes. (see the comp.sources.postscript FAQ for
  2159.     a list of all PostScript related programs.)
  2160.  
  2161.     If your code has never worked yet (i.e. you are still writing it)
  2162.     then I find that it helps to put little comments in the margin
  2163.     about the state of the stack. Like this:
  2164.  
  2165.  
  2166.          Heart pathbbox             % lowerx lowery upperx uppery
  2167.          exch 4 -1 roll             % lowery uppery upperx lowerx
  2168.  
  2169.  
  2170.     I generally put these comments in originally, and then take them
  2171.     out when the program works. Maybe this is a bad practice, in case I
  2172.     ever want to go back and look at the code to modify it!!
  2173.  
  2174.  
  2175. Subject: 7.10 How can I print in landscape mode?
  2176.  
  2177.     Landscape (the opposite of portrait) means that the page is turned
  2178.     on its side. You can redefine showpage in terms of the current
  2179.     definition of showpage.
  2180.  
  2181.     Do something like:
  2182.  
  2183.   /oldshowpage /showpage load def
  2184.  
  2185.   90 rotate llx neg ury neg translate   % for the first page
  2186.   /showpage
  2187.   {
  2188.           oldshowpage
  2189.           90 rotate llx neg ury neg translate
  2190.   } def
  2191.  
  2192.     This won't work if the PostScript file you're editing uses
  2193.     initgraphics or grestoreall. Also note that the method described
  2194.     (redefining showpage) does not conform to the document structuring
  2195.     conventions. The Adobe recommended method involves performing the
  2196.     transformaton as part of the setup for each page.
  2197.  
  2198.  
  2199. Subject: 8 Computer-specific PostScript
  2200.  
  2201.     This section describes PostScript information specific to a
  2202.     particular type of computer or operating system.
  2203.  
  2204. Subject: 8.1 Sun Workstations
  2205.  
  2206.     What is NeWS?
  2207.  
  2208. |   NeWS (R.I.P.) was Sun Microsystems PostScript-based window system
  2209. |   for the Sun Workstation. NeWS was a project within Sun (started
  2210. |   around 1985) to create a window system to supplant SunView (a very
  2211. |   successful kernel-based window system). NeWS was a client-server
  2212. |   model window system (like X) but among many of NeWS novel features
  2213. |   was the use of PostScript as the language to describe the
  2214. |   appearance of objects on the screen. NeWS had many features in
  2215. |   common with Display PostScript, but NeWS predates Adobe Display
  2216. |   PostScript and was neither connected with Adobe Display PostScript
  2217. |   nor endorsed by Adobe. NeWS was not an Adobe product, nor was it a
  2218. |   Sun/Adobe joint venture.
  2219. |
  2220. |   As of October 1992, Sun management signed a deal with Adobe to
  2221. |   adopt Display PostScript for the Sun. In 1993, Sun finally dropped
  2222. |   NeWS altogether. The Sun window system is supposed to start
  2223. |   shipping a Display PostScript environment in late 1993.
  2224.  
  2225.     And how does PostScript run on them?
  2226.  
  2227.     PostScript runs on NeWS, although NeWS was not a fully-compliant
  2228.     PostScript interpreter. There were incompatibilities between the
  2229.     NeWS PostScript interpreter and ``official'' PostScript
  2230.     interpreters as defined by Adobe and the Apple LaserWriter family
  2231.     of printers, such that many PostScript files which would print fine
  2232.     on a LaserWriter would not render under NeWS. The most critical
  2233.     incompatibility was lack of support for Adobe Type 1 fonts, Sun
  2234. |   having gone with their own font format known as F3. F3 fonts have
  2235. |   now gone the way of the zumbooruk and will be supplanted by Type 1
  2236. |   fonts.
  2237.  
  2238.  
  2239. Subject: 8.2 IBM PC
  2240.  
  2241.     You can find nenscript for OS/2 1.x--2.0 and MSDOS on
  2242.     ftp-os2.nmsu.edu in pub/uploads/nensc113.zip.
  2243.  
  2244.     There are rumors that Word Perfect and Microsoft Word don't produce
  2245.     ``clean'' PostScript that follows the DSC conventions (See Section
  2246.     9, ``Encapsulated PostScript''). This means that a lot of
  2247.     PostScript utilities like Ghostview and psnup, etc., that require
  2248.     the DSC conventions, will not work on them.
  2249.  
  2250.     Creating a PostScript file from MS Word
  2251.  
  2252.     Install the LaserWriter driver that comes with Windows.In the
  2253.     printer setup, select a PostScript printer. Then click on the setup
  2254.     button to get that pop-up. Then clik the Options button. Then
  2255.     select the print to Encapsulated PostScript File. If you don't
  2256.     specify a file name, Word will prompt you for one when you tell it
  2257.     to print.
  2258.  
  2259.     When printing Microsoft Windows files that have been captured on a
  2260.     PC's LPT port, you mostly need to define two ctrl-d's in a row as
  2261.     well to remove all of them in the document:
  2262.  
  2263.  
  2264.   (\004\004) cvn {} def
  2265.  
  2266.  
  2267. Subject: 8.3 Apple Macintosh
  2268.  
  2269.     For more details about printing with the Macintosh, read the
  2270.     comp.sys.mac.apps FAQ.
  2271.  
  2272.     How can I convert a PostScript file created with a UNIX program to
  2273.     the Mac?
  2274.  
  2275.     A way that is clumsy, but works, is this:
  2276.  
  2277.  
  2278.  
  2279.    1. Display the UNIX-based PostScript file on screen
  2280.  
  2281.  
  2282.    2. Use window dumping facility to get a bitmap file
  2283.  
  2284.  
  2285.    3. Convert the above bitmap file to TIFF format and then export it
  2286.       to Adobe Illustrator on the Mac.
  2287.  
  2288.     The PostScript section of the FAQ for the Macintosh newsgroup
  2289.     comp.sys.mac.apps (maintained by Elliotte Harold) answers the
  2290.     following questions:
  2291.  
  2292.  
  2293.     * How do I make a PostScript file?
  2294.  
  2295.  
  2296.     * How do I print a PostScript file?
  2297.  
  2298.  
  2299.     * Why won't my PostScript file print on my mainframe's printer?
  2300.  
  2301.       Full documentation of this process provided with a utility called
  2302.       macps.
  2303.  
  2304.  
  2305.     * Why are my PostScript files so big?
  2306.  
  2307.  
  2308. Subject: 9 Encapsulated PostScript
  2309.  
  2310.  
  2311. Subject: 9.1 What is Encapsulated PostScript?
  2312.  
  2313.     Encapsulated PostScript (EPS) is a standard format for importing
  2314.     and exporting PostScript language files in all environments. It is
  2315.     usually a single page PostScript language program that describes an
  2316.     illustration. The purpose of the EPS file is to be included as an
  2317.     illustration in other PostScript language page descriptions. The
  2318.     EPS file can contain any combination of text, graphics, and images.
  2319.     An EPS file is the same as any other PostScript language page
  2320.     description, with some restrictions.
  2321.  
  2322.     EPS files can optionally contain a bitmapped image preview, so that
  2323.     systems that can't render PostScript directly can at least display
  2324.     a crude representation of what the graphic will look like. There
  2325.     are three preview formats: Mac (PICT), IBM (tiff), and a platform
  2326.     independent preview called EPSI.
  2327.  
  2328.     An EPS file must be a conforming file, that is, it must conform to
  2329.     the Adobe Document Structuring Conventions (DSC). At a minimum, it
  2330.     must include a header comment,%!PS-Adobe-3.0 EPSF-3.0, and a
  2331.     bounding box comment,%%BoundingBox: llx lly urx ury, that
  2332.     describes the bounds of the illustration.
  2333.  
  2334.     (The specification does not require the EPSF version, but many
  2335.     programs will reject a file that does not have it.)
  2336.  
  2337.     The EPS program must not use operators that initialize or
  2338.     permanently change the state of the machine in a manner that cannot
  2339.     be undone by the enclosing application's use of save and restore
  2340.     (eg. the operators starting with ``init'' like initgraphics). As a
  2341.     special case, the EPS program may use the showpage operator. The
  2342.     importing application is responsible for disabling the normal
  2343.     effects of showpage.
  2344.  
  2345.     The EPS program should make no environment-sensitive decisions (the
  2346.     importing application may be trying to attain some special effect,
  2347.     and the EPS program shouldn't screw this up), although it can use
  2348.     some device-dependent tricks to improve appearance such as a
  2349.     snap-to-pixel algorithm.
  2350.  
  2351.     The complete EPS specification is available from Adobe (see the
  2352.     section on Adobe). Read Appendix G (Document Structuring
  2353.     Conventions, V3.0) and Appendix H (Encapsulated PostScript File
  2354.     Format, V3.0) in the new PostScript red book: PostScript Language
  2355.     Reference Manual, Second Edition.
  2356.  
  2357.     An optional component of an EPS file is a ``preview'' image of the
  2358.     file's content. The preview image is a bitmapped representation of
  2359.     the image which may be displayed by programs using the EPS file
  2360.     without having to actually interpret the PostScript code.
  2361.  
  2362.     The recommended form for a preview image is ``Interchange'' format
  2363.     and is described fully in the ``red book'', second edition.
  2364.     Interchange format represents the image as a series of hex strings
  2365.     placed in the EPS file as PostScript comments. The entire file
  2366.     remains an ASCII file.
  2367.  
  2368.     That book contains all of the information that you need to fix your
  2369.     program to correctly output EPS. It is what I use for our software.
  2370.  
  2371.     A variation of EPS embeds the preview image and PostScript text in
  2372.     a binary file which contains a header and the preview image in
  2373.     either a TIFF or MetaFile format. The header defines where in the
  2374.     file each section (EPS, TIFF, or MetaFile) starts and ends. On the
  2375.     Macintosh, the preview is stored as a PICT in the file's resource
  2376.     fork.
  2377.  
  2378.  
  2379. Subject: 9.2 What are EPSI and EPSF?
  2380.  
  2381.     EPSI is EPS with a device independent bitmap preview. EPSI is an
  2382.     all ASCII (no binary data or headers) version of EPS. EPSI provides
  2383.     for a hexadecimal encoded preview representation of the image that
  2384.     will be displayed or printed.
  2385.  
  2386.     EPSF is a version of EPS with a TIFF preview instead of a bitmap
  2387.     preview.
  2388.  
  2389.  
  2390. Subject: 9.3 How do I convert PostScript to EPS?
  2391.  
  2392.     Use pstoepsi, or do it by hand.
  2393.  
  2394.     To convert from PostScript to EPS, one must guarantee that the
  2395.     PostScript file meets the above requirements. If the actual program
  2396.     conforms to the programming requirements, then one can simply add
  2397.     the required comments at the top of the file saying that the file
  2398.     is EPS and giving its BoundingBox dimensions.
  2399.  
  2400.     Optional comments include font usage (%%DocumentFonts: or%%
  2401.     DocumentNeededResources: font), EPSI preview comments (%%
  2402.     Begin(End)Preview:) extensions (%%Extensions:) and language
  2403.     level (%%LanguageLevel:).
  2404.  
  2405.     There are some operators that should not be used within an EPS
  2406.     file:
  2407.  
  2408.  
  2409.           banddevice     cleardictstack   copypage     erasepage
  2410.           exitserver     framedevice      grestoreall  initclip
  2411.           initgraphics   initmatrix       quit         renderbands
  2412.           setglobal      setpagedevice    setshared    startjob
  2413.  
  2414.     These also include operators from statusdict and userdict operators
  2415.     like legal, letter, a4, b5, etc.
  2416.  
  2417.     There are some operators that should be carefully used:
  2418.  
  2419.           nulldevice     setgstate        sethalftone  setmatrix
  2420.           setscreen      settransfer      undefinefont
  2421.  
  2422.     To convert a PostScript file to EPS format, you must edit the file
  2423.     using a text editor or word processor to add lines that will define
  2424.     the file as an EPS-format file.
  2425.  
  2426.  
  2427.  
  2428.    1. Using your normal method of printing, print the PostScript file
  2429.       to a PostScript printer. You can choose to view it on the screen
  2430.       instead, but keep in mind that all the below distance
  2431.       measurements assume that you are printing on a normal-sized piece
  2432.       of paper.
  2433.  
  2434.       NOTE: If the PostScript image does not get displayed properly, it
  2435.       probably will not work either once you have converted it to EPS
  2436.       format. Correct the PostScript program so that it works before
  2437.       you convert it to EPS format.
  2438.  
  2439.  
  2440.    2. Use a tool (see below) to find the bounding box, which shows how
  2441.       much space the PostScript image occupies when printed. You
  2442.       specify the dimensions of the bounding box when you convert the
  2443.       PostScript file to EPS format.
  2444.  
  2445.    3. If you don't have a bounding box tool, you can just use a ruler
  2446.       and draw one on your printout. With two horizontal lines and two
  2447.       vertical lines, draw a box around the image that includes the
  2448.       entire image while minimizing white space.
  2449.  
  2450.       This box represents your bounding box. You may want to leave a
  2451.       small amount of white space around the image as a precautionary
  2452.       measure against minor printing problems, such as paper stretching
  2453.       and paper skewing.
  2454.  
  2455.  
  2456.    4. Measure distance ``a'' from the lower-left corner of the image to
  2457.       the left edge of the paper.
  2458.  
  2459.  
  2460.    5. Write the measurement in points. If your ruler does not show
  2461.       points, calculate the total number of points: 1 inch = 72 points,
  2462.       1 cm = 28.3 points, and 1 pica = 12 points. Designate this
  2463.       measurement as ``measurement a.''
  2464.  
  2465.    6. Measure distance ``b'' from the lower-left corner of the image to
  2466.       the bottom edge of the paper.
  2467.  
  2468.       Designate this measurement in points as ``measurement b.''
  2469.  
  2470.  
  2471.    7. Measure distance ``c'' from the upper-right corner of the image
  2472.       to the left edge of the paper.
  2473.  
  2474.       Designate this measurement in points as ``measurement c.''
  2475.  
  2476.  
  2477.    8. Measure distance ``d' from the upper-right corner of the image to
  2478.       the bottom edge of the paper.
  2479.  
  2480.       Designate this measurement in points as ``measurement d.''
  2481.  
  2482.  
  2483.    9. Using any text editor, open the PostScript file for editing.
  2484.  
  2485.       You'll see several lines of text. These lines are the PostScript
  2486.       description of the image. The lines at the top of the file are
  2487.       the header.
  2488.  
  2489.  
  2490.   10. Add these lines to, or modify existing lines in, the header (the
  2491.       first group of lines in any PostScript file):
  2492.  
  2493.  
  2494.             %!Adobe-2.0 EPSF
  2495.             %%Creator: name
  2496.             %%CreationDate: date
  2497.             %%Title: filename
  2498.             %%BoundingBox: a b c d
  2499.  
  2500.  
  2501.       Note: Make sure that the first line in the file is ``%
  2502.       !Adobe-2.0 EPSF.'' Also, do not separate the header lines with a
  2503.       blank line space. The first blank line that PostScript encounters
  2504.       tells it that the the next line begins the body of the program.
  2505.  
  2506.       For ``name,'' type your name or initials. For ``date,'' type
  2507.       today's date using any format (for example, MM-DD-YY, MM/DD/YY,
  2508.       July 5, 1987, and so on). For ``filename,'' type the name of the
  2509.       PostScript file. After ``BoundingBox: ,'' type the measurements
  2510.       you took in steps 3, 4, 5, and 6, separating each with a space:
  2511.       ``a'' is the measurement from Step 3, ``b'' is the measurement
  2512.       from Step 4, ``c'' is the measurement from Step 5, and ``d'' is
  2513.       the measurement from Step 6.
  2514.  
  2515.  
  2516.   11. Save the file in text-only format.
  2517.  
  2518.     If you are interested in learning how to further edit your
  2519.     PostScript files, these books are available at most bookstores:
  2520.  
  2521.     Understanding PostScript Programming and the green book.
  2522.  
  2523.     The Document Structuring Conventions (DSC), version 1.0, are
  2524.     discussed in Appendix C of the old red book. The new red book has a
  2525.     lot of information about Encapsulated PostScript.
  2526.  
  2527.     There will be a technical note available from Adobe called
  2528.     ``Guidelines for Specific Operators'' that will talk about why some
  2529.     operators are prohibited and how to use the others.
  2530.  
  2531.  
  2532. Subject: 9.4 How do I get the bounding box of a PostScript picture?
  2533.  
  2534.     Use bbfig or epsinfo.ps.
  2535.  
  2536.     Or if you would rather construct the bounding box by hand, use
  2537.     Ghostview, which has a continuous readout of the mouse cursor in
  2538.     the default user coordinate system. You simply place the mouse in
  2539.     the corners of the figure and read off the coordinates.
  2540.  
  2541. Subject: 10 About The Comp.Lang.PostScript FAQ (and Usenet Guide to
  2542.     PostScript)
  2543.  
  2544.  
  2545. Subject: 10.1 The PostScript FAQ: What is it?
  2546.  
  2547.     The PostScript FAQ is a set of answers to frequently asked
  2548.     questions (FAQs) that have appeared on the Usenet newsgroup
  2549.     comp.lang.postscript. It is broken into many useful sections.
  2550.  
  2551.     The Usenet Guide to PostScript is a larger set of help and answers
  2552.     to PostScript questions, plus a tutorial for new users. It is still
  2553.     in the process of being created. There is one file ``Exactly What
  2554.     Does a Transformation Matrix Do?'', that is definitely not part of
  2555.     the FAQ. Please send more!
  2556.  
  2557.     I need help writing and revising answers for common questions
  2558.     relating to PostScript. Almost all of the information in the
  2559.     documents has been written by kind volunteers. The answers will be
  2560.     published in either or both documents. A very long answer in the
  2561.     Usenet Guide may be summarized, referred to briefly, or not
  2562.     mentioned at all in the FAQ.
  2563.  
  2564.  
  2565. Subject: 10.2 How to get the FAQ files
  2566.  
  2567.     The FAQ is available by anonymous ftp to
  2568.     wilma.cs.brown.edu:pub/comp.lang.postscript/ You can get it
  2569.     formatted in plain text ASCII, LaTeX, or PostScript.
  2570.  
  2571.     I would be happy to email a copy of the FAQ in any format to you if
  2572.     you do not have FTP.
  2573.  
  2574. Subject: 10.3 How to write a FAQ answer
  2575.  
  2576.     I greatly appreciate your time and effort to help improve the
  2577.     quality of the FAQ. Thank you for being willing to contribute!
  2578.  
  2579.  
  2580.     * Please check to see if the topic is already in an FAQ. Perhaps
  2581.       you really mean to submit a revision to an existing section.
  2582.  
  2583.     * Start with a clear statement about what problem you are solving.
  2584.  
  2585.     * Write for novice users, in ``tutorial format'', even if the
  2586.       answer is meant for experienced programmers.
  2587.  
  2588.     * Be specific when you make references.
  2589.  
  2590.     * Be complete, and take the time to look over your draft and
  2591.       revise.
  2592.  
  2593.     * Answers should not be too wordy, unless you intend to write a
  2594.       long answer for the Usenet Guide and have a shorter summary or a
  2595.       pointer to the description placed in the FAQ. If you want to
  2596.       write the summary yourself, thanks!
  2597.  
  2598.     * Obviously, I cannot accept copyrighted material without
  2599.       permission. Don't write the FAQ by paraphrasing from a
  2600.       copyrighted book!
  2601.  
  2602.  
  2603. Subject: 10.4 The FAQ can contain LaTeX and PostScript inserts
  2604.  
  2605.     The FAQ is actually written with LaTeX, so feel free to submit with
  2606.     that text formatting language. There is a PostScript version of the
  2607.     FAQ also, so feel free to send along PostScript pictures to
  2608.     include.
  2609.  
  2610.  
  2611. Subject: 10.5 Revising the FAQ
  2612.  
  2613.     Suggestions and comments are welcomed. My favorite way of receiving
  2614.     a change suggestion is if you make a copy of the FAQ, edit the
  2615.     copy, and mail me the modification, or a context diff (include the
  2616.     version number).
  2617.  
  2618.  
  2619. Subject: 10.6 How to submit new information
  2620.  
  2621.     If you know something that you think is worthwhile to be put in a
  2622.     FAQ, definitely send it to me!
  2623.  
  2624.     Don't hold back if your information is very specific. If there's
  2625.     too much information to post I will archive it at an ftp site and
  2626.     place a pointer to it in the FAQ.
  2627.  
  2628.  
  2629. Subject: 10.7 How to add a program description to the FAQ index
  2630.  
  2631.     If the program is original, please send it to me, or tell me where
  2632.     I can get it. Please put your name and email address at the top of
  2633.     each file. Your program will be doubly useful if you clean up the
  2634.     program so that other people can use it as an example to learn.
  2635.  
  2636.     If the program was written by someone else, please send me just the
  2637.     title, description, and where to get it. I may already have it.
  2638.  
  2639.  
  2640.     For programs the FAQ needs to know:
  2641.  
  2642.  
  2643.     * What is the name of the program?
  2644.  
  2645.     * What does it claim to do, and does it do it well? Is it worth
  2646.       using?
  2647.  
  2648.     * Where is it available? What ftp sites can I get it from?
  2649.  
  2650.     * How much does it cost? Is it free?
  2651.  
  2652.     * What kinds of computers does it run on?
  2653.  
  2654.     * Who is the author and does the author give an email address?
  2655.  
  2656.     * Does it handle PostScript 2?
  2657.  
  2658.     * What packages does it rely on?
  2659.  
  2660.     If the program is a PostScript interpreter, then the FAQ also needs
  2661.     to know:
  2662.  
  2663.     * Does it let you go backwards one page?
  2664.  
  2665.     * Does it display the number of pages in the document?
  2666.  
  2667.     * Does it let you print PostScript to a non-PostScript printer?
  2668.  
  2669.     * What formats can it convert to?
  2670.  
  2671.  
  2672. Subject: 10.8 How to add a book description to the FAQ
  2673.  
  2674.     For books the FAQ needs to know:
  2675.  
  2676.  
  2677.     * What is the name of the book or document?
  2678.  
  2679.     * What does it claim to do, and does it do it well? Is it worth
  2680.       using?
  2681.  
  2682.     * Can I get it on-line?
  2683.  
  2684.     * Who wrote it? Does the author give an email address?
  2685.  
  2686.     * Who is the publisher, and what is the copyright date?
  2687.  
  2688.     * Does the publisher list an address and phone number or fax
  2689.       number?
  2690.  
  2691.     * What is the ISBN number of the book?
  2692.  
  2693.     * What is the library call number of the book?
  2694.  
  2695.     * How much does the book cost?
  2696.  
  2697.     * Does it cover PostScript 2?
  2698.  
  2699.     * Are coding examples from the book available by email or anonymous
  2700.       ftp?
  2701.  
  2702.     * Do the authors sell the coding examples on a diskette?
  2703.  
  2704.  
  2705. Subject: 10.9 Questions that need answers
  2706.  
  2707.  
  2708.  
  2709.    1. Where are ftp sites that have PostScript freeware?
  2710.  
  2711.  
  2712.    2. What vendors sell fonts for PostScript printers? Where are the
  2713.       free ftp sites for them?
  2714.  
  2715.  
  2716.    3. Are there any free encapsulated PostScript converters?
  2717.  
  2718.  
  2719.    4. What is the charter for comp.lang.postscript?
  2720.  
  2721.  
  2722.    5. What questions should the FAQ have?
  2723.  
  2724.  
  2725.    6. What book information is wrong or missing in the FAQ?
  2726.  
  2727.  
  2728.    7. What program information is wrong or missing in the FAQ?
  2729.  
  2730.  
  2731.    8. What ftp site have good examples of PostScript code?
  2732.  
  2733.  
  2734. Subject: 11 About PostScript 2
  2735.  
  2736.  
  2737. Subject: 11.1 What printers support Level 2 PostScript?
  2738.  
  2739.     * Apple LaserWriter IIf
  2740.  
  2741.  
  2742.     * Apple LaserWriter IIg
  2743.  
  2744.  
  2745.     * Apple LaserWriter Pro 600 (with ram upgrade to get 600 DPI)
  2746.  
  2747.  
  2748.     * Apple LaserWriter Pro 630 (True 600 DPI)
  2749.  
  2750.  
  2751.     * Apple Personal LaserWriter NTR
  2752.  
  2753.       Apple sells an upgrade to the IINTX to turn it into a IIf/IIG for
  2754.       instance.
  2755.  
  2756.  
  2757.     * Compaq PAGEMARQ 20
  2758.  
  2759.  
  2760.     * Compaq PAGEMARQ 15
  2761.  
  2762.  
  2763.     * Data Products LZR 960
  2764.  
  2765.  
  2766.     * Data Products LZR 1560
  2767.  
  2768.  
  2769.     * DEClaser 1152
  2770.  
  2771.  
  2772.     * Hewlett-Packard PostScript CartridgePlus, which works with the HP
  2773.       Laserjet III, IIID, and IIIP.
  2774.  
  2775.  
  2776.     * Hewlett-Packard LaserJet 4M
  2777.  
  2778.  
  2779.     * NEC SilentWriter 95
  2780.  
  2781.  
  2782.     * QMS 1725 Print System
  2783.  
  2784.  
  2785.     * QMS 860 ``Hammerhead''
  2786.  
  2787.  
  2788.     * QMS ColorScript 210 and 230
  2789.  
  2790.  
  2791.     * Tektronix Phaser III PXi
  2792.  
  2793.  
  2794.     * Tektronix Phaser II (all models)
  2795.  
  2796.  
  2797.     * Tektronix Phase 200e
  2798.  
  2799.  
  2800.     * Texas Instruments microLaser Turbo
  2801.  
  2802.     * Texas Instruments microLaser XL Turbo
  2803.  
  2804.     This rest of file contains a description of PostScript 2 written by
  2805.     Carl Orthlieb from Adobe. The text has not been changed, but some
  2806.     paragraphs have been deleted for brevity. Comments by me are in
  2807.     square brackets, and these were not written by Adobe.
  2808.  
  2809.  
  2810. Subject: 11.2 What is PostScript Level 2?
  2811.  
  2812.     Since its introduction in 1985, the PostScript language has been
  2813.     considerably extended for greater programming power, efficiency,
  2814.     and flexibility.
  2815.  
  2816.     Typically, these language extensions have been designed to adapt
  2817.     the PostScript language to new imaging technologies or system
  2818.     environments. While these extensions have introduced new
  2819.     functionality and flexibility to the language, the basic imaging
  2820.     model remains unchanged.
  2821.  
  2822.     PostScript Level 2 integrates the original PostScript language, all
  2823.     previous language extensions, and new language features into the
  2824.     core PostScript language imaging model.
  2825.  
  2826.  
  2827. Subject: 11.3 [ Color Extensions ]
  2828.  
  2829.     The color extensions were added to the language in 1988 to provide
  2830.     more complete color functionality. With the original PostScript
  2831.     language, color could be specified using the red-green-blue (RGB)
  2832.     and hue-saturation-brightness (HSB) color models.
  2833.  
  2834.     The color extensions include cyan-magenta-yellow-black (CMYK) color
  2835.     model, black generation and undercolor removal functions, screen
  2836.     and transfer functions for four separate color components, and a
  2837.     colorimage operator for rendering color sampled images. The color
  2838.     extensions are currently found in PostScript color printers from
  2839.     Canon, QMS, Oce, and NEC as well as all implementations of the
  2840.     Display PostScript system.
  2841.  
  2842.  
  2843. Subject: 11.4 [ Composite Font Extensions ]
  2844.  
  2845.     The composite font technology is a general solution that extends
  2846.     the basic PostScript language font mechanism to enable the encoding
  2847.     of very large character sets and handle non-horizontal writing
  2848.     modes.
  2849.  
  2850.     A Type 1 PostScript font has room for encoding only 256 distinct
  2851.     characters. A typical Japanese font has over 7,000 Kanji, katakana
  2852.     and hiragana characters. The composite font technology allows you
  2853.     to create one ``composite'' font that is made up from any number of
  2854.     ``base'' fonts. In addition, the composite font technology allows
  2855.     you to include two sets of metrics (character spacing details) in
  2856.     the font: one for a horizontal-writing mode, and one for a
  2857.     vertical-writing mode.
  2858.  
  2859.  
  2860. Subject: 11.5 [ Display PostScript Extensions ]
  2861.  
  2862.     The Display PostScript extensions address the needs of using the
  2863.     PostScript language imaging model in a display environment. It
  2864.     includes extensions to deal specifically with displays and
  2865.     windowing systems as well as many optimized operators to increase
  2866.     performance which is critical in an interactive display environment
  2867.     [ (and printers) ] .
  2868.  
  2869.  
  2870. Subject: 11.6 [ Overview of Level 2 Features ]
  2871.  
  2872.  
  2873. Subject: 11.7 Filters
  2874.  
  2875.  
  2876.  
  2877.     * A filter transforms data as it is being read from or written to a
  2878.       file. The language supports filters for ASCII encoding of binary
  2879.       data, compression and decompression, and embedded subfiles.
  2880.       Properly used, these filters reduce the storage and transmission
  2881.       cost of page descriptions, especially ones containing sampled
  2882.       images. Benefits: Reduced storage requirements, greater
  2883.       performance.
  2884.  
  2885.  
  2886.     * ASCII encoding of binary data: ASCII/85 (represent binary data in
  2887.       ASCII format with only a 125 % expansion of data), and ASCII/HEX
  2888.       (current method of representing binary data in ASCII format but
  2889.       with a 200 % expansion of data). Benefits: Compact representation
  2890.       of binary data in a portable ASCII representation.
  2891.  
  2892.  
  2893.     * Compression and decompression filters: CCITT Group 3 & 4
  2894.       (monochrome images), run-length encoding (monochrome and
  2895.       grayscale images), LZW ( 2:1 compression of text files), DCT
  2896.       (20-200:1 compression of color images using the proposed JPEG
  2897.       standard). Benefits: Improved performance due to reduced
  2898.       transmission times. PostScript files on disk can also be made
  2899.       much smaller, saving disk space.
  2900.  
  2901.  
  2902. Subject: 11.8 Binary Encoding
  2903.  
  2904.     In addition to the standard ASCII encoding, the language syntax
  2905.     includes two binary-encoded representations. These binary encodings
  2906.     improve efficiency of generation, representation, and
  2907.     interpretation. However, they are less portable than the ASCII
  2908.     encoding and are suitable for use only in controlled environments.
  2909.     Benefits: performance, compactness.
  2910.  
  2911.  
  2912. Subject: 11.9 Optimized graphics operators
  2913.  
  2914.  
  2915.  
  2916.     * Rectangle operators. New operators for filling, clipping and
  2917.       stroking rectangles; all highly optimized. For example, rectfill
  2918.       is 3 times faster than an equivalent moveto, lineto, lineto,
  2919.       lineto, closepath, fill. Benefits: performance and convenience.
  2920.  
  2921.  
  2922.     * Graphics state objects provide a fast way to switch between
  2923.       graphics states, which define the current line weight, color,
  2924.       font, etc. In existing printers, graphics states are stored on a
  2925.       stack, so accessing an arbitrary graphics state is somewhat
  2926.       cumbersome. With graphics state objects, the graphics state can
  2927.       be associated with a name, and retrieved by simply requesting the
  2928.       name. Benefits: Performance, convenience.
  2929.  
  2930.  
  2931.     * Halftone specification. New halftone dictionaries provide a more
  2932.       precise way of specifying the halftone dots, and makes switching
  2933.       between halftone screens faster. (The spot function is not
  2934.       reinterpreted.) Benefits: Performance, convenience, enhanced
  2935.       functionality.
  2936.  
  2937.  
  2938.     * User paths are self-contained procedures that consists entirely
  2939.       of path construction operators and their coordinate operands.
  2940.       User path operators perform path construction and painting as a
  2941.       single operation; this is both convenient and efficient. There is
  2942.       a user path cache to optimize interpretation of user paths that
  2943.       are invoked repeatedly. Benefits: Performance, convenience.
  2944.  
  2945.  
  2946.     * Stroke adjustment. For very thin lines, there is a trade-off
  2947.       between perfect positioning and consistent line width. Depending
  2948.       on the placement of such a line, it could end up being rendered
  2949.       as either 1 or 2 pixels wide, which is a noticeable difference.
  2950.       To account for this, PostScript language programs often include
  2951.       logic to slightly alter the coordinates of lines for consistent
  2952.       rendering. With automatic stroke adjustment the interpreter
  2953.       performs this adjustment to ensure consistent widths. Doing it in
  2954.       the interpreter rather than in the PostScript language program is
  2955.       20 - 30 % faster. Benefits: Performance, convenience, improved
  2956.       quality.
  2957.  
  2958.  
  2959. Subject: 11.10 Optimized text operators
  2960.  
  2961.  
  2962.  
  2963.     * The xyshow operator provides a more natural way for applications
  2964.       to deal with individual character positioning. Allows
  2965.       simultaneous track kerning, pair kerning, and justification.
  2966.       Benefits: Performance, convenience.
  2967.  
  2968.  
  2969.     * The selectfont operator optimizes switching between fonts. It
  2970.       does the work of 3 Level 1 operators: findfont, scalefont, and
  2971.       setfont and has been optimized by using a caching mechanism.
  2972.       Benefits: Performance, convenience.
  2973.  
  2974.  
  2975. Subject: 11.11 Forms
  2976.  
  2977.  
  2978.     * A form is a self-contained description of any arbitrary graphics,
  2979.       text, and sampled images that are to be painted multiple times on
  2980.       each of several pages or several times at different locations on
  2981.       a single page.
  2982.  
  2983.  
  2984.     * With the new forms feature, you can define a base form whose
  2985.       representation stays cached between pages, so only information
  2986.       that changes between forms will need to be interpreted for each
  2987.       page. The representation used to cache the form may vary from
  2988.       device to device depending on the available resources, such as
  2989.       memory and/or hard disk space. In some cases, the actual
  2990.       rasterized form will be saved, in other cases, an intermediate
  2991.       representation (such as a display list) may be saved. Benefits:
  2992.       End-users will benefit by improved performance.
  2993.  
  2994.  
  2995.     * This makes forms processing faster and provide a natural
  2996.       framework for ISVs implementing a forms functionality in their
  2997.       application. Benefits: Convenience for ISVs.
  2998.  
  2999.  
  3000.     * Besides the traditional concept of ``forms,'' some other examples
  3001.       of forms include: Letterhead, stationary, overhead presentation
  3002.       backgrounds, repetitive symbols in a CAD drawing such as screws
  3003.       (mechanical drawing) or windows (architectural drawing), complex
  3004.       background blends in 35mm slides. Benefits: Enhanced
  3005.       functionality and application of PostScript printers in a variety
  3006.       of different environments.
  3007.  
  3008.  
  3009. Subject: 11.12 Patterns
  3010.  
  3011.  
  3012.  
  3013.     * The new pattern color space provides the ability to establish a
  3014.       pattern as the current color. Subsequent use of operators such as
  3015.       fill, stroke, and show apply ``paint'' that is produced by
  3016.       replicating (or tiling) a small graphical figure called a pattern
  3017.       cell at fixed intervals in x and y to cover the areas to be
  3018.       painted. The appearance of a pattern cell is defined by a
  3019.       PostScript language procedure, which can include any arbitrary
  3020.       graphics, text, and sampled images. The shape of the pattern cell
  3021.       need not be rectangular, and the spacing of tiles can differ from
  3022.       the size of the pattern cell. Benefits: Enhanced functionality,
  3023.       performance, convenience.
  3024.  
  3025.  
  3026.     * For efficiency, the representation of the pattern cell may be
  3027.       cached. When cached, the execution of the procedure that defines
  3028.       the pattern need be done only once for the current pattern. The
  3029.       pattern cache is similar to the font cache. Benefits:
  3030.       Performance.
  3031.  
  3032.  
  3033.     * Multiple colors can be specified in the pattern or the pattern
  3034.       can be used as a mask to paint a color defined in some other
  3035.       color space. Benefits: Enhanced functionality
  3036.  
  3037.  
  3038.     * For display environments, this feature will allow patterns to be
  3039.       represented in a resolution independent manner. Until now,
  3040.       patterns have typically been represented by arrangements of
  3041.       pixels. This resolution-dependent representation does not work
  3042.       well when trying to image the pattern at a variety of different
  3043.       resolutions.
  3044.  
  3045.  
  3046. Subject: 11.13 Images
  3047.  
  3048.     There are several enhancements to the facilities for painting
  3049.     sampled images: use of any color space, 12-bit component values,
  3050.     direct use of files as data sources, and additional decoding and
  3051.     rendering options. Benefits: Convenience, performance, quality.
  3052.  
  3053.  
  3054. Subject: 11.14 Composite Fonts
  3055.  
  3056.  
  3057.  
  3058.     * Provides the basic machinery for non-Roman character sets.
  3059.       Enables the encoding of very large character sets and
  3060.       non-horizontal writing modes. Benefits: Enhanced functionality.
  3061.  
  3062.  
  3063.     * Provides a page description language for international business.
  3064.       Composite font technology makes printers more international. The
  3065.       same font technology can be used worldwide, and will provide
  3066.       support for companies that must work in today's international
  3067.       business environment. Benefits: Enhanced functionality.
  3068.  
  3069.  
  3070.     * Advantages not limited to foreign languages - also useful for
  3071.       strictly Roman printers: allows the creation of a single
  3072.       composite font that combines two or more fonts. For example, you
  3073.       may wish to combine a textual font (such as Times-Roman) with a
  3074.       graphical font (such as Zapf-Dingbats), and have all characters
  3075.       at their disposal within a single font. Other uses of composite
  3076.       fonts: IBM extended character set, and expert sets (such as Adobe
  3077.       Garamond). Benefits: Enhanced functionality and increased
  3078.       performance by minimizing switching between fonts.
  3079.  
  3080.  
  3081. Subject: 11.15 New Color Spaces
  3082.  
  3083.  
  3084.  
  3085.     * CMYK color model and support for color images. Enhanced
  3086.       functionality. This will encourage more ISVs to use the color
  3087.       operators, because the operators will be widely available (The
  3088.       printer itself may not be able to print in color, but the
  3089.       PostScript language program won't generate errors when the
  3090.       operators for CMYK color are used.)
  3091.  
  3092.  
  3093.     * PostScript Level 2 supports several device-independent color
  3094.       spaces based on the CIE 1931 (XYZ)-space. CIE-based color
  3095.       specification enables a page description to specify color in a
  3096.       way that is related to human visual perception. The goal of the
  3097.       CIE standard is that a given CIE-based color specification should
  3098.       produce consistent results on different color output devices,
  3099.       independent of variations in marking technology, ink colorants,
  3100.       or screen phosphors. True device-independent color specification.
  3101.       Improved color matching between devices.
  3102.  
  3103.  
  3104.     * PostScript Level 2 supports three classes of color spaces: device
  3105.       independent, special, and device dependent.
  3106.  
  3107.  
  3108.     The following device independent color spaces are standard:
  3109.  
  3110.     The CIEBasedABC color space is defined in terms of a two-stage,
  3111.     non- linear transformation of the CIE 1931 (XYZ)-space. The
  3112.     formulation of the CIEBasedABC color space models a simple zone
  3113.     theory of color vision, consisting of a non-linear trichromatic
  3114.     first stage combined with a non-linear opponent color second stage.
  3115.     This formulation allows colors to be digitized with minimum loss of
  3116.     fidelity; this is important in sample images.
  3117.  
  3118.     Special cases of CIEBasedABC include a variety of interesting and
  3119.     useful color spaces, such as the CIE 1931 (XYZ)-space, a class of
  3120.     calibrated RGB spaces, a class of opponent color spaces such as the
  3121.     CIE 1976 (L*a*b*)-space and the NTSC, SECAM, and PAL television
  3122.     spaces.
  3123.  
  3124.     The CIEBased A color space is a one-dimensional and usually
  3125.     achromatic analog of CIEBasedABC.
  3126.  
  3127.     The following special color spaces are standard:
  3128.  
  3129.  
  3130.     * The Pattern color space enables painting with a ``color'' defined
  3131.       as a pattern, a graphical figure used repeatedly to cover the
  3132.       areas that are to be painted. See the discussion of patterns for
  3133.       more information.
  3134.  
  3135.  
  3136.     * The Indexed color space provides a way to map from small integers
  3137.       to arbitrary colors in a different color space such as a device
  3138.       independent color space.
  3139.  
  3140.  
  3141.     * The Separation color space provides control over either the
  3142.       production of a color separation or the application of a device
  3143.       colorant, depending on the nature and configuration of the
  3144.       device.
  3145.  
  3146.     The following device dependent color spaces are standard:
  3147.  
  3148.  
  3149.  
  3150.     * The DeviceGray color space is equivalent to the existing
  3151.       PostScript language's gray color model.
  3152.  
  3153.  
  3154.     * The DeviceRGB color space is equivalent to the existing
  3155.       PostScript language's red-green-blue (RGB) color model.
  3156.  
  3157.  
  3158.     * The DeviceCMYK color space is equivalent to the existing
  3159.       PostScript language's cyan-magenta-yellow-black (CMYK) color
  3160.       model.
  3161.  
  3162.  
  3163. Subject: 11.16 New screening/halftoning technology
  3164.  
  3165.  
  3166.  
  3167.     * Improved algorithms for determining the angles and frequencies
  3168.       used for halftone screens. The improvements fall into two primary
  3169.       categories: general improvements, and improvements specific to
  3170.       color separations.
  3171.  
  3172.  
  3173.     * General improvements: (1) The new algorithms yield a 10 %
  3174.       improvement in the speed of the setscreen and image operators;
  3175.       (2) Earlier version of PostScript software could produce halftone
  3176.       screens only for certain angle and frequency combinations. Enough
  3177.       of these combinations were available so that any requested screen
  3178.       could be fairly well approximated by one of the available angle
  3179.       and frequency combinations. In contrast, the improved halftoning
  3180.       algorithms can provide as much as a ten-fold increase in the
  3181.       number of angle-frequency combinations that are available,
  3182.       depending on the device resolution and the available memory.
  3183.       Benefits: Increased performance and higher quality halftone
  3184.       screens.
  3185.  
  3186.  
  3187.     * Improvements specific to color separations: An additional feature
  3188.       is available that enables PostScript software to generate
  3189.       extremely accurate screen angles and frequencies. The screens
  3190.       produced by this method can achieve an angular accuracy of within
  3191.       05 degrees or better, depending on such parameters as exact
  3192.       screen angle requested, device resolution, and memory available
  3193.       for use by the algorithm. Benefits: Extremely high-quality color
  3194.       separations that approach the quality that previously was
  3195.       available only from high-end, color electronic pre-press systems.
  3196.  
  3197.  
  3198. Subject: 11.17 Improved printer support features
  3199.  
  3200.  
  3201.  
  3202.     * Page device setup provides a device independent framework for
  3203.       specifying the requirements of a page description and for
  3204.       controlling both standard features, such as the number of copies,
  3205.       and optional features, such as duplex printing, paper trays,
  3206.       paper sizes, and other peripheral features.
  3207.  
  3208.  
  3209.     * Applications developers will be able to write a single driver for
  3210.       a variety of different PostScript printers. The same code can be
  3211.       used to address printer specific features whether the features
  3212.       exist in the printer or not. If the feature is not in the
  3213.       printer, the application can decide how to best respond to the
  3214.       lack of the feature. Benefits: Enhanced functionality. ISVs
  3215.       benefit by having a more uniform method for accessing printer
  3216.       specific features. End users benefit by having software that will
  3217.       take advantage of their printer's features.
  3218.  
  3219.  
  3220. Subject: 11.18 Interpreter parameters
  3221.  
  3222.     Administrative operations, such as system configuration and
  3223.     changing input-output device parameters, are now organized in a
  3224.     more systematic way. Allocation of memory and other resources for
  3225.     specific purposes is under software control. For example, there are
  3226.     parameters controlling the maximum amount of memory to be used for
  3227.     VM, font cache, pattern cache, and halftone screens. Benefits:
  3228.     Flexibility.
  3229.  
  3230.  
  3231. Subject: 11.19 Resources
  3232.  
  3233.  
  3234.  
  3235.     * A resource is a collection of named objects that either reside in
  3236.       VM or can be located and brought into VM on demand. There are
  3237.       separate categories of resources with independent name spaces -
  3238.       for example, fonts and forms are distinct resource categories.
  3239.  
  3240.     * The language includes convenient facilities for locating and
  3241.       managing resources.
  3242.  
  3243.  
  3244. Subject: 11.20 Dictionaries
  3245.  
  3246.     Many Level 2 operators expect a dictionary operand that contains
  3247.     key-value pairs specifying parameters to the operator. Language
  3248.     features controlled in this way include halftones, images, forms,
  3249.     patterns, and device setup. This organization allows for optional
  3250.     parameters and future extensibility. For convenience in using such
  3251.     operators, the PostScript language syntax includes new tokens,
  3252.  
  3253.  
  3254.    << and >>,
  3255.  
  3256.  
  3257.     to construct a dictionary containing the bracketed key-value pairs.
  3258.     Benefits: Convenience, extensibility.
  3259.  
  3260. Subject: 11.21 When did Level 2 products come available?
  3261.  
  3262.     The first Level 2 products were available in early 1991. Level 2
  3263.     printers will soon be much more common.
  3264.  
  3265.  
  3266. Subject: 11.22 Are Level 1 and Level 2 implementations compatible?
  3267.  
  3268.     [ Mostly, but not fully. The incompatibilities are of sufficient
  3269.     magnitude that when QMS introduced its first Level 2 compatible
  3270.     printer, it provided a ``Level 1'' mode for backward compatibility,
  3271.     for handling jobs which wouldn't run in Level 2. This should not be
  3272.     taken as too much of a criticism...some of the incom- patibilities
  3273.     from Level 1 to Level 2 involved fixing design mistakes in Level 1,
  3274.     or tightening up definitions which had been loose in Level 1 (where
  3275.     careless application writers had made use of the looseness, writing
  3276.     not to the language specification but to particular
  3277.     implementations.) ]
  3278.  
  3279.     (C) 1990 Adobe Systems Incorporated. All rights reserved.
  3280.     PostScript, Display PostScript, and Adobe are trademarks of Adobe
  3281.     Systems Incorporated registered in the U.S. All other product names
  3282.     are trademarks or registered trademarks of their respective
  3283.  
  3284.  
  3285.  
  3286. FAQ Acknowledgments
  3287.  
  3288.     This FAQ was compiled based heavily on the contributions of and
  3289.     with the help of Henry McGilton, Dick Dunn, Howard Gayle, Dan
  3290.     Carrigan, Carl Orthlieb, Ed Garay, Robert Lerche, Bruno Hall, Tom
  3291.     Epperly, and Chris Lewis.
  3292.  
  3293.     Also thanks to contributors Paul Balyoz, Karl Berry, Jerry Black,
  3294.     Charles Cashion, Jim DeLaHunt, Leonard Hamey, Chris Herborth, Steve
  3295.     Kinzler, Bill Lee, Timo Lehtinen, Carl Lydick, Otto Makela, Bill
  3296.     Pringle, Tony Valsamidis, and Jamie Zawinski.
  3297.  
  3298.     Special thanks to Ken Porter, who originally compiled and organized
  3299.     this FAQ.
  3300.  
  3301.   Ver  Date     Reason
  3302.   ----------------------------------------------------------------
  3303.   1.00 12-18-90 Creation by Ken Porter
  3304.   1.06  5-29-91 expanded on EPS explanation, general updates
  3305.   2.00 10-25-92 Brought up to date and expanded, by Jon Monsarrat
  3306.   2.1   5-21-93 Revised because of new comp.sources.postscript group.
  3307.   2.2  12-26-93 Finally incorporated all the '93 comments and suggestions.
  3308.  
  3309.  
  3310.     This FAQ is copyright (C) 1994 by Jonathan Monsarrat. Permission is
  3311.     granted to freely edit and distribute as long as this copyright
  3312.     notice is included.
  3313.  
  3314.     This document was written with the LaTeX language and formatted by
  3315.     LameTeX, the PostScript hacker's LaTeX.
  3316.  
  3317.