Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!ames!ucbcad!ucbvax!phri.UUCP!roy From: roy@phri.UUCP (Roy Smith) Newsgroups: comp.laser-printers Subject: Re: Why I think I dislike PostScript Message-ID: <8707311651.AA22667@brillig.umd.edu> Date: Wed, 29-Jul-87 14:36:05 EDT Article-I.D.: brillig.8707311651.AA22667 Posted: Wed Jul 29 14:36:05 1987 Date-Received: Sun, 2-Aug-87 01:00:18 EDT References: <8707282014.AA19351@brillig.umd.edu> Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: cmcl2!phri!roy@seismo.CSS.GOV (Roy Smith) Distribution: world Organization: Public Health Research Inst. (NY, NY) Lines: 145 Approved: laser-lovers@brillig.umd.edu In <8707282014.AA19351@brillig.umd.edu> phil@RICE.EDU (William LeFebvre) says: > Is it true that the only type of font description which can be given > to a PostScript engine is a spline-based one? Not at all (he says with perhaps more conviction than his experience justifies). I'm no PS guru but I've been playing with it for a couple of years and took some stabs at defining my own fonts. What I quickly learned, however, is that as bad as I am at writing PostScript programs, I'm even worse at designing fonts. :-) For example, the code at the end of this note defines a bitmap font called Matrix (which only has a single character in it, 'A') and prints some samples at various sizes. As far as I can tell, Matrix is a true font, just like Helvetica or Courier and you can do anything to it you could to any other font (scale it, make it pseudo-italic by slanting it, wrap it arount a spiral, etc). > 5 pages per minute? I get better performance out of our Imagen 2308: > 8 pages per minute and it isn't a PostScript engine. From this I > assert the following claim: PostScript engines are very slow. Well, yes and no. We've got several Apple LaserWriter and LaserWriter-Plus printers. Mostly we run troff output on them, using Adobe's TranScript package. Yes, it's slow, no more than about 3-4 ppm I guess. But, considering that a "bib | tbl | eqn | ptroff" pipeline on an 11/750 or a Sun-3 can't begin to approach that rate, I don't worry about it much. If you've got faster hardware (or software), it obviously becomes more important to have your printer keep up. I will admit, that for a given amount of money, if you don't need the fancy PS features, you will probably do better with a non-PS printer and pour the money you save on the controller into the print engine. We're just getting the bugs out of our first kbox (Kinetics' Ethernet/AppleTalk bridge box). This lets us send stuff at AT speed (200 or so kbps) instead of the 9.6 kbps we're used to. That won't do anything about the slow PS engine in the LW, but it will zap the transmission time problem. For some applications (printing 512 x 512 halftone images) which are almost 100% transmission time, we think we'll be able to go from about 5 minutes a page to about 4 pages per minute. > Perhaps someday in the distant future they might be running an acceptable > speed---when we start using 68030 processors in them and when we start > putting them on Ethernets (so that transmitting the very verbose > document description won't slow us down as much). DEC's LPS-40 is supposedly a 40 ppm PS printer. From what I've heard, that rating really does reflect how fast the PS processor can compose and print pages, not just the raw speed of the print engine. Then again, the LPS-40 has a uVax-II in it, with a pricetag of almost $60k. My guess is that with a 68020 class machine, and some simple hardware support for token parsing, name lookup, and coordinate transformations, you should be able to build a PS printer in that performance range to sell for maybe as little as half that. Agressive pricing and market competition would help, neither of which seems to be in effect now for the high-end machines like the LPS-40. There were some very interesting discussions on the INFO-POSTSCRIPT mailing list back around November 1985 on this very subject. > By the way, I have never had the need or the sudden urge to print text in a > spiral (or for that matter, at any orientation other than 0 and 90 degrees). I'll admit that I've never needed to print spiral text either, but we do take advantage of some of the fancy PS features every day. For example, if you do: /Helvetica findfont [13.3 0 0 10.3 0 0] makefont setfont you end up with a sort of HelveticaExpanded which almost exactly matches the typeface used on our pre-existing letterheads. No more feeding letterheads into LaserWriters for us; just put a ".LH" macro in front of your letter and get a letterhead generated as you go. And, yes, we do have the need to print text at all sorts of strange angles (labels for plasmid restriction maps), and while we don't take advantage of it yet, those maps would look even nicer if we wrapped text around the outside of an arc. /roy ----feed the following to a PostScript printer for Matrix demo---- %! /BuildCharDict 10 dict def /MatrixFont 7 dict def MatrixFont begin /FontType 3 def /FontMatrix [1 0 0 1 0 0] def /FontBBox [0 0 1 1] def /Encoding 256 array def /CharacterDefs 28 dict def 0 1 255 {Encoding exch /.notdef put} for CharacterDefs /.notdef { } put Encoding (A) 0 get /A put CharacterDefs /A { .65 1 scale % 0.65:1 aspect ratio 8 12 true [8 0 0 -12 0 12] {<00 3C 42 42 42 7E 42 42 42 42 00 00>} imagemask } put /BuildChar { BuildCharDict begin /char exch def /fontdict exch def fontdict /Encoding get char get /charname exch def fontdict /CharacterDefs get charname get /charproc exch def 0.65 0 0 0 8 12 setcachedevice gsave charproc grestore end } def end /Matrix MatrixFont definefont pop /inch {72 mul} def 2 inch 5 inch moveto /Matrix findfont 48 scalefont setfont (AAAAAAA) show 2 inch 4 inch moveto /Matrix findfont 24 scalefont setfont (AAAAAAA) show 2 inch 3.5 inch moveto /Matrix findfont 12 scalefont setfont (AAAAAAA) show 2 inch 3 inch moveto /Matrix findfont 7 scalefont setfont (AAAAAAA) show showpage ----end of Matrix demo---- -- Roy Smith, {allegra,cmcl2,philabs}!phri!roy System Administrator, Public Health Research Institute 455 First Avenue, New York, NY 10016