home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / utility / dtp / fontkill / dctjun92.doc next >
Text File  |  1992-06-04  |  37KB  |  695 lines

  1. Beyond the Dot Matrix: Avoiding Rick's Sneers
  2. Myths and Mysteries
  3. (C) 1992 David C. Troy
  4.  
  5. Caption for (.GEM) Graph: Increased printer resolution creates a 
  6. parabolic growth curve for the amount of data sent to a printer to 
  7. obtain full-resolution graphics. Clearly, sending 75MB to an 
  8. Imagesetter at 2540dpi would be unacceptably slow.
  9.  
  10. Caption for .IMG File: Our "shaded box and a couple of words" 
  11. example. At 8.5" x 11", at 300dpi, this graphic could be over one 
  12. megabyte and would take a good while to send to a high-resolution 
  13. printer.
  14.  
  15. Please put the following table, in a box, with this article.
  16.  
  17. Amount of Data Required
  18. for Some Common Printers to Produce
  19. an 8.5 x 11 page at their Maximum Resolution:
  20.  
  21.      Printer             Resolution     Data Represented (bytes)
  22.      Epson 9 Pin (Old)   144 dpi        242352
  23.      Epson 9 Pin (New)   240 x 216dpi   605880
  24.      Epson 24 Pin        360 x 180dpi   757350
  25.      Atari Laser         300dpi         1051875
  26.      HP Deskjet          300dpi         1051875 (561000 with PCL)
  27.      QMS-MR815           600dpi         4207500
  28.      Lino Imagesetter    1270dpi        18850769
  29.      Lino Imagesetter    2540dpi        75403075        
  30.      POSTSCRIPT          Any            Usually (Ideally) 13-400K
  31.  
  32. A Hearty Hello
  33.      I have a surprise for you! It isn't Jello! No, it's your 
  34. favorite thing! What do you think it is? Ice cream? Escargot? A 
  35. thesis on the viability of prosthetic limbs? Nope! We're going to 
  36. talk about Atari desktop publishing -- BEYOND THE DOT MATRIX, 
  37. past the LASER, to where only a few, really nutty people actually 
  38. get in the Atari world: the IMAGESETTER zone.
  39.  
  40.      We're going to talk about the theory behind computer 
  41. printing. We're going to talk about different ways we print when 
  42. using our two favorite Atari DTP packages, Calamus and PageStream. 
  43. And then we're going to talk about why using an IMAGESETTER with 
  44. either program is a new kind of adventure -- and how it blows the 
  45. bottom right out of the standard printing "envelope." And then 
  46. we'll talk about some problems specific to Pagestream IMAGESETTER 
  47. usage. It'll be fun.
  48.  
  49. Ways Printers Think About Data
  50.      Imagine: it's the stone age. It's 1980. You have a bitmapped, 
  51. black and white picture file on your Atari 800 you want to print 
  52. out on your Epson MX-80. How do you do it? You send it to your 
  53. faithful printer, one dot at a time. You take care to give it the 
  54. message, "Hey this is gonna be a bunch of dots," before you start, 
  55. and you're careful to line the dots up in rows the printer can 
  56. understand.
  57.  
  58.      One painful line at a time, your picture was trudged out. 
  59. This might have taken ten minutes. Your computer was tied up 
  60. during that whole time, "waiting" for your printer to be free. 
  61.  
  62.      This, my friends, was the roots of Desktop Publishing. A sort 
  63. of "Neanderthal Man" DTP system: printing a controlled, graphical 
  64. array of dots. And you were there.
  65.  
  66.      Back then you were only talking about printing out a low-
  67. resolution picture. Your printer's resolution hovered in the range 
  68. of 144dpi (on a good day, for nice printers.) If you scaled your 
  69. picture to cover an entire 8.5" x 11" page, you were talking about 
  70. sending your printer a mere 237K of computed data. The fact of the 
  71. matter is that your parallel interface can send that very quickly, 
  72. in under a minute to be sure.
  73.  
  74.      But we all know that dot-matrix printers can only take one 
  75. line's worth of data at a time. And we all know that your Atari 
  76. 800 didn't have 237K worth of RAM to hold the computed graphics 
  77. data. So it didn't matter how fast the computer could send the 
  78. data! We were stuck waiting for the printer to print, line by 
  79. line, and we had to wait for the computer to figure the image 
  80. data, one line at a time. Some of us got 64K printer buffers, 
  81. where large hunks of our 237K page could wait while data were 
  82. processed by the printer, but that only cut 25% off the time the 
  83. computer would be tied up for a page of graphics. (The computer 
  84. won't be free until the last 64K chunk is in the buffer, and there 
  85. won't be 64K free in the buffer until the other 173K is printed, 
  86. and that takes time.)
  87.  
  88.      It didn't matter, then, that in relative terms, 237K was a 
  89. lot of data (a 1050 won't hold 237K under any circumstances) to be 
  90. sending around. We were bound by the speed of our printer. We 
  91. could have sent it two megs worth of data and it wouldn't change 
  92. the speed at which the printer prints one line.
  93.  
  94.      Nine-pin printers gained resolution by the mid-eighties. The 
  95. best ones available now can produce images at up to 240 
  96. (horizontal) by 216 (vertical) dots-per-inch.
  97.  
  98.      If we printed our scaled picture from our 800 to this sort of 
  99. printer at its best resolution, we'd be talking about sending it 
  100. roughly twice as much data (240 x 216 dpi up from 144 x 144 dpi). 
  101. In fact, we'd have about 600K of print data. 
  102.  
  103.      Twenty-four pin dot matrix printers brought resolutions up to 
  104. 360 (horizontally) by 180 (vertically). This brings our high-rez 
  105. 8.5" x 11" bitmapped print data up to about 700K. It's not 
  106. dramatically more, but it is more data. But another advancement 
  107. was made with twenty-four pin printers: they print lines of 
  108. graphics faster. So even though we're dealing with another 10% of 
  109. data, our print time for an 8.5" x 11" page of graphics might be 
  110. roughly the same from a nine and twenty-four pin printer.
  111.  
  112.      Enter laser printers. They show up at 300 dpi (horizontally 
  113. and vertically), and suddenly our 8.5" x 11" page jumps up to 1MB 
  114. worth of print data. Bells should be going off. It takes a few 
  115. minutes, indeed, to send 1MB through parallel or serial 
  116. interfaces.
  117.  
  118.      What if our page was nothing more than a big shaded 
  119. rectangle, with a couple of words written inside of it? Through 
  120. conventional methods, the computer would compute each line in a 
  121. temporary buffer, send it to the printer, and it would print the 
  122. rectangle -- one line at a time. But wait! Laser printers can't do 
  123. that! They have to print one whole page at once! So we have to 
  124. send our laser printer the entire megabyte worth of dot-matrix 
  125. data. And the laser printer has to have a megabyte of RAM online, 
  126. to store this data, so that its laser controller can scan it onto 
  127. its drum in one swell foop. And we've already said that it would 
  128. take several minutes to send over this one megabyte worth of data! 
  129. All this to print a dumb shaded box with a couple of words on 
  130. it? And your printer probably has more RAM now than your computer? 
  131. Time to do a reality check.
  132.  
  133.      It would be much simpler if, rather than our laser printer 
  134. being simply a dot repository with toner, it could do a little 
  135. thinking on its own. If we could say to the printer, "Hey, 
  136. printer, give me a box about so big, shaded, with some words 
  137. written on it in this here font." Asking the printer to do this 
  138. might only take a few lines of "program code." We'll come back to 
  139. this.
  140.  
  141.      There is another way to make things simpler, and I've talked 
  142. before about how the Atari laser printers work. They "share" 
  143. memory with the computer, and the computer does all the thinking 
  144. for the printer. It sets up the page in its RAM, and the high-
  145. speed DMA interface allows the printer to image on its drum 
  146. directly from the computer's RAM. This is smart. The DMA interface 
  147. will let us transfer that megabyte of data in a couple of seconds, 
  148. as where a parallel or serial interface might take several 
  149. minutes. We also don't have to give the printer any brains or any 
  150. memory. It's a very sexy, simple system.
  151.  
  152.      Hewlett-Packard invented what they call PCL, which stands for 
  153. something ivory-towerish like Printer Control Language. They use 
  154. it for their HP Laserjet II, III, and Deskjet printers. Many other 
  155. printers use it too. It makes an attempt to give the printer some 
  156. brains of its own, as well as some memory.
  157.  
  158.      With PCL, we can reduce the size of our 300dpi 8.5" x 11" 
  159. page to around 500K from 1MB. That's a significant reduction: 
  160. fully one half the size! But remember, that's just compressing our 
  161. data. When the 500K gets to the printer, the printer still has to 
  162. have significant brains, and a full 1MB of memory, to decode our 
  163. 500K and store the 1MB  matrix. (This isn't true for the Deskjet; 
  164. it's sent the 500K of "compressed" PCL bitmap information one-line 
  165. at a time, just like a 24-pin dot matrix printer.) This is a 
  166. significant step towards being able to say, "Hey printer, give me 
  167. a shaded box and some words," but why on earth would it take 500K? 
  168. Because it isn't really saying that. It's saying, "Hey, printer, 
  169. here's some nasty muck and when you decipher it you'll find it'll 
  170. take a meg of memory." That's not real descriptive, and it's 
  171. totally resolution dependent. If you wanted to print out at 
  172. 150dpi, your data might shrink to 200K. That's still too much data 
  173. and time to waste for a dumb shaded box and a couple of words!
  174.  
  175.      What do we do when we want to print out at higher resolutions 
  176. and we don't want to have to tell our application what printer and 
  177. resolution we're printing at? What do we do when 300dpi isn't good 
  178. enough, and we want to go at a full 1270 or 2540 dpi? And what do 
  179. we do about laser printers that are coming out now, operating at 
  180. 600 dpi? We invent PostScript.
  181.  
  182.      PostScript was invented by the folks at Adobe Systems a few 
  183. years ago to solve printer problems. It's a language. It's an 
  184. "object oriented" language. It works a lot like reverse polish 
  185. notation. You give it a "thing" to work with, and then you define 
  186. what you want PostScript to do with it. If our "thing" was a box, 
  187. we'd give PostScript a little program that says how to make a box 
  188. (go 50 right, 50 down, 50 left, and 50 up, and trace it with a 1 
  189. point brushstroke.) Then we'd tell it where to put the box.
  190.  
  191.      In a test I did, using our "shaded box" and a "couple of 
  192. words" example, the same file that took 700K worth of dots on our 
  193. 24-pin printer only took 13K in Postscript. And about 11K of that 
  194. is PageStream-induced administrative overhead. Gee. 13K. That 
  195. might take a half-second to send to my printer through a parallel 
  196. or serial interface!
  197.  
  198.      If you look at the graph I made, you'll see the parabolic 
  199. growth curve that's associated with increasing printer resolution. 
  200. (This makes sense: you're talking about a fixed number of square 
  201. inches on an 8.5 x 11 page (93.5 in2, a constant) multiplied by an 
  202. x-squared sort of curve. It follows that you'd have a parabola.) 
  203. But just because it makes sense doesn't mean that it's very 
  204. convenient. Sending your 9-pin printer 237K worth of dots is 
  205. bearable but slow. Sending your 300dpi laser printer a meg worth 
  206. of dots is very, very slow. Sending an imagesetter (at 1270dpi) 
  207. 18MB worth of dots is simply unbearable, and at 2540dpi, 75 megs 
  208. worth of data is excrutiatingly painful. You can see why something 
  209. like PostScript needed to exist.
  210.  
  211.      The same 13K PostScript program that we send to my 300dpi 
  212. PostScript laser can be sent to any other PostScript compatible 
  213. device. And because PostScript is "object" and "outline" oriented, 
  214. each device will print our program at the highest resolution 
  215. possible. So when we send our "shaded box and a couple of words" 
  216. program to my 300dpi laser, we get an image that's 300dpi. When we 
  217. send it to Rick Flashman's (up at Gribnif) 600dpi QMS super-hyper-
  218. digital laser, it comes out at a full 600dpi. When I send it to 
  219. Rick Speaks' Linotronic Imagesetter, down in Annapolis, and ask 
  220. him to print it out at 1270 or 2540 dpi, respectively, it comes 
  221. out at the full resolution. And since the program is only 13K 
  222. long, it only takes a couple of seconds to send to any one of 
  223. these swell printers.
  224.  
  225.      So, do you concede the importance of something like 
  226. PostScript? It removes resolution dependence from the data that is 
  227. sent to any printer. With PostScript, we're no longer confined to 
  228. the 237K-75MB growth curve associated with increased resolution. A 
  229. page is a page is a page. It's fair to say that a typical, fairly 
  230. complex PostScript page (8.5 x 11) is 200K (although you can find 
  231. ways to make them much bigger). 200K for a whole 2540dpi page is 
  232. nothing compared to 75MB.
  233.  
  234.      Remember that quantity of data sent to printer is almost the 
  235. only determinant of print time. Remember that at 144dpi, we're 
  236. looking at 237K. 300dpi runs 1MB (500K with PCL), 2540dpi produces 
  237. 75MB, and we get 13K with PostScript. Which do you think would be 
  238. fastest and easier to adopt as an international standard?
  239.  
  240. Disadvantages of PostScript
  241.      The primary drawback to PostScript is its price. Because 
  242. we're giving the printer brains (my QMS-PS 810 Turbo has a 20MHz 
  243. 68020, 4MB of RAM, and its own 20MB SCSI hard drive), it's simply 
  244. going to cost money. I got my printer cheap at about $2000. A 
  245. printer with that kind of feature list would usually run around 
  246. $3000. Cheaper PostScript printers exist, but they are usually 
  247. slower and don't have the SCSI port for hard disk connection. 
  248. (We'll talk about why this is important soon.)
  249.  
  250.      Since Imagesetters cost around $40,000 to begin with, having 
  251. a PostScript interpreting on-board computer is not only a good 
  252. idea (so as to avoid sending it 75MB of data through a parallel 
  253. port), but it's little extra cost to add. That is, the expensive 
  254. part isn't the PostScript; it's the printer itself.
  255.  
  256.  
  257. Other PostScript Considerations
  258.  
  259.      UltraScript and now CompoScript (and the PD GhostScript) are 
  260. PostScript interpreters that run on the ST. They read in a 
  261. PostScript program and then convert that into a bitmap that your 
  262. printer can understand -- be it a dot-matrix, HP, or Atari laser. 
  263. But these programs merely provide compatibility with the 
  264. PostScript standard (and turn standard home printers into viable 
  265. proofing machines for work which is to be Imageset), they do not 
  266. provide any speed increase; you're still bound to the standard 
  267. resolution-print data parabolic curve. You're looking at 600K of 
  268. data to transfer for a decent 9-pin, 700K for a 24-pin, 500K for a 
  269. PCL laser/DeskJet, and 1MB (at DMA speeds) for the Atari laser. 
  270. And if you have an 8MHz ST, you can bet your bottom dollar that it 
  271. will be slower at interpreting PostScript code than my 20MHz 68020 
  272. PostScript laser. Even a TT (a 32MHz 68030) running a PostScript 
  273. interpreter could very well be slower than a fast PostScript 
  274. printer, because the printers have the original PostScript code 
  275. built-in and optimized on a set of chips, and that hardware is 
  276. specifically designed for running the Adobe PostScript code. Your 
  277. TT or ST isn't.
  278.  
  279.      Traditional PostScript is, quite honestly, a programming 
  280. language -- plain and simple. Here's an example of a friendly 
  281. PostScript program.
  282.  
  283. /Str
  284. (We all LOVE Current Notes!)
  285. def
  286. /Helvetica findfont
  287. 20 scalefont
  288. setfont
  289. 216 216 moveto
  290. Str show
  291. showpage
  292.  
  293.      If we examine this, line-by-line, we see that the language 
  294. works like I said it did; it's object oriented. In the first line, 
  295. we're telling it, "Hey, consider the label Str for a second."
  296.  
  297.      In the second line, we say, "And consider a string that says 
  298. 'We all LOVE Current Notes!'" And in the third line, the "def" 
  299. means, "We're gonna call that string Str."
  300.  
  301.      Then we say, "Hey, look up the font Helvetica in your 'font 
  302. dictionary' -- I'm sure you have it." We then tell it to "scale" 
  303. the font to a 20 point size, and that we want to "use" that font. 
  304. We then instruct it, "three inches three inches moveto," (216 
  305. points is three inches) which will bring its "current position 
  306. pointer" three inches from the left of the page and three inches 
  307. from the bottom. Then we say, "Hey, remember that string called 
  308. Str? Show it now at the current position." And then we say, "Hey, 
  309. you know how we're talkin' about a page here? Print the page. Yes 
  310. -- on paper."
  311.  
  312.      Very simple. This program will produce identical results on 
  313. any Postscript printer, and the output will be at the highest 
  314. resolution possible on that printer.
  315.  
  316.      There is a new version of PostScript coming into wider usage 
  317. now called PostScript Level 2, and it, among other things, allows 
  318. the encoding of the simple ASCII (meaning plain text) program into 
  319. a binary, more compact format. This becomes an issue when we start 
  320. getting 300 and 400K PostScript files. By converting the long-
  321. winded simple minded ASCII program into binary, you might reduce 
  322. the size of the file by half its original size. The only 
  323. PostScript Level 2 printers I know of are the new Apple 
  324. LaserWriter IIf/g machines, a _nice_ 600dpi laser from IBM, and 
  325. the DataProducts LZR-960. There is currently no way to take 
  326. advantage of the features of PostScript Level 2 on the Atari at 
  327. this time. So why do I mention it?
  328.  
  329.      I did say that "your average PostScript (level 1) file was 
  330. around 200K." Then I said that some PostScript files might be 300 
  331. or 400K or more. Well, in an ideal world, all PostScript files 
  332. would be 200K. When you use a Macintosh with something like 
  333. Pagemaker or Quark Express, you'd have to work pretty hard (by 
  334. including lots of graphics) to get a PostScript file that's more 
  335. than a couple of hundred K. But on an Atari, using PageStream 2.1, 
  336. it's not hard at all to get PostScript files that run well over 
  337. one and two megabytes. The crowd breathed in sharply and reared 
  338. back, aghast at the gargantuan proportions of what he had 
  339. suggested -- indeed!
  340.  
  341.      What's the deal? Why should these files be so big? The answer 
  342. is dumbness. One of the accessories (which I mentioned earlier) 
  343. which is part and parcel of a PostScript printer is its Font 
  344. Dictionary. A standard PostScript laser printer, ever since Apple 
  345. made its LaserWriter Plus, contains the "standard 35 PostScript 
  346. fonts." (They lie; it's not really 35 fonts. It's really standard, 
  347. bold, italic, and bold-italic versions of Avant Garde, Bookman, 
  348. Courier, Helvetica, Schoolbook, Palatino, Symbol, and Times. All 
  349. those versions add up to 35 fonts.) So when you turn on your 
  350. PostScript printer, it will certainly know about these fonts.
  351.  
  352.      Here's where we get to my printer's hard disk. The hard disk 
  353. stores additional fonts that can live in the printer's font 
  354. dictionary. There are programs which will download Adobe Type One 
  355. PostScript fonts to the printer. And they can live either in the 
  356. printer's RAM (which means the fonts will dissolve when I turn the 
  357. printer off), or they can live in the printer's hard disk, so that 
  358. every time I turn the printer on, the font will be ready for me. 
  359. Sure, I don't need a hard disk on my printer, but it means that I 
  360. don't have to spend ten or fifteen minutes downloading the Type 
  361. One fonts I want to use, every time I turn on my printer in the 
  362. morning.
  363.  
  364.      The reason I bought this printer with the hard disk was that 
  365. I wanted to simulate the conditions present down at Rick Speaks' 
  366. place. He's my local service bureau -- the place with the 
  367. Linotronic Imagesetter, and his company is called Stuff, Inc. But 
  368. anyway, I wanted my printer to differ in only one small way from 
  369. his: resolution. That way I could be assured that if my files 
  370. would print on my printer at 300dpi, they'd print on his at 1270 
  371. or 2540 dpi. That's why the printer has the hard disk. I wanted to 
  372. store all the same fonts on my printer's hard disk that I'd be 
  373. using on his printer's hard disk. And our printers work the same, 
  374. even Steven.
  375.  
  376.      You should know something about Rick. Apparently Rick doesn't 
  377. feel he has to work for a living. He's very standoffish. He's very 
  378. difficult to talk to. And he hates my Atari with a passion. He 
  379. hates PageStream with a passion. There was one time last summer 
  380. when I spent a whole day down at his place, poring over a scroll 
  381. of PostScript program code, trying to figure out why my tabloid-
  382. sized Current Notes two-page ad wouldn't image properly on his 
  383. printer. It worked great on my previous PostScript laser. Suffice 
  384. it to say that I can't get him to print any jobs for me without 
  385. him making some kind of cut on PageStream. I just ignore him and 
  386. disregard him as the MacSnob that he is. But it got under my skin 
  387. and made me wonder why I couldn't get my PostScript files down to 
  388. a more manageable size.
  389.  
  390.      Not only did my files not print in my early Imagesetting 
  391. days, but when they did print, they seemed to take an awfully long 
  392. time. Rick allows four minutes for his system to send and image an 
  393. 8.5 x 11 page. For some reason, some of my PageStream files seemed 
  394. to take as long as eight or ten minutes for a single page. And he 
  395. charges a penny per second for every bit of time over the allowed 
  396. four minutes. So if he charges me $5 for a standard 8.5 x 11 page 
  397. at four minutes, if it took eight minutes, he charges me $7.40. 
  398. And when you sometimes print out fifty some pages, you don't want 
  399. to pay an extra $120, and get sneered at to boot!
  400.  
  401.      It turns out that the reason PageStream takes so long to 
  402. print is that when you use Adobe Type One fonts from within 
  403. PageStream, rather than asking you, the user, what fonts are 
  404. built-in to your printer (or stored in its memory or on its hard 
  405. disk), it assumes that your printer doesn't know about Type One 
  406. fonts at all. And every time you go to print to a PostScript 
  407. printer, and every time a captured a PostScript file on disk to 
  408. take to Rick's Imagesetter, it includes ASCII copies of every  
  409. Type One font used in the document.  
  410.  
  411.      A Type One PFB (outline) file might take about 30 or 40K in 
  412. its native binary format on disk, but when you convert it into an 
  413. ASCII-hex format, it can take up to 100K in your print file. And 
  414. that's a hundred thousand bytes you have to send to your printer, 
  415. every time you want to look at your page! And if you have ten Type 
  416. One fonts in a page, you're looking at sending your printer a 
  417. MEGABYTE worth of font data alone, every time you send a page. We 
  418. already said it would take several minutes to send a megabyte of 
  419. data over a parallel interface! And if your page is very complex, 
  420. with graphics or lots of text, you could be talking about sending 
  421. your printer TWO MEGS of data! And when you bring a two-megabyte 
  422. file to Rick to get printed on his Imagesetter, you're undoubtedly 
  423. going to break the four-minute-per-page barrier and accrue what he 
  424. calls RIP (raster image processor) time at the unforgiving rate of 
  425. a penny-per-second. Totally bogus, dudes!
  426.  
  427.      Bear in mind that Rick is a font pack-rat. He has a BIG hard 
  428. drive on his imagesetter that stores every Type One font Adobe has 
  429. ever made, plus some ones I haven't heard of. Doesn't it seem 
  430. totally inane for me to:
  431.  
  432.      1) Send Rick copies of fonts he already has on his printer's
  433.         hard disk.
  434.      2) Have to carry around one and two megabyte files that
  435.         should only be around 200K.
  436.      3) Get billed (at a penny per second) for the time it takes 
  437.         to send Rick these fonts that he already has.
  438.      4) Repeatedly (in proofing) send my own laser printer copies
  439.         of fonts that are already on its hard disk.
  440.  
  441.      Without trying too hard, I came up with a solution to the 
  442. first three complaints.
  443.  
  444.      When you peruse through a PageStream generated PostScript 
  445. program file, you'll see that every Type One font that you used in 
  446. the document is neatly and regularly wedged in the file. They 
  447. start with the header, "!%PS-AdobeFont-1.0" and end with the 
  448. command "cleartomark". So I wrote a handy little program which 
  449. will read-in the PostScript file, search for the senselessly 
  450. embedded Type One fonts, and ask the user if each font should 
  451. remain the file. Then it will write a "fixed" version of the file, 
  452. back out to the disk, which does not contain any Type One font 
  453. that you deem unnecessary.
  454.  
  455.      How you determine which fonts are "unnecessary" simply 
  456. depends on what fonts your destination printer has online. If you 
  457. know, for a fact, as I do that your service bureau has every 
  458. Adobe font, it isn't necessary for you to re-download the same 
  459. Adobe fonts. If, though, your service bureau doesn't have some 
  460. weird PD Type One font that you downloaded from a BBS, it makes 
  461. sense to bite the bullet, keep the 100K of font data in the file, 
  462. and include it. But even if you just remove two Type One fonts 
  463. from your PostScript file, you've pared the file down by 200K or 
  464. so, which ultimately could keep you in that four-minute processing 
  465. window.
  466.  
  467.      Another way to handle it, if your service bureau would like 
  468. to download the fonts you're using into their Imagesetter's memory 
  469. (or hard disk -- and you should recognize that you're breaking 
  470. copyright laws by doing this with commercial fonts), is to give 
  471. your local Rick a disk that has all the esoteric fonts you're 
  472. using for a set of pages beforehand. That way, he can download the 
  473. fonts once to his printer, and you can remove all the Type One 
  474. fonts from your PostScript program files. So then if you use 
  475. "Cheese-DisplayFace" in six of your documents, you don't have to 
  476. send the font six times. Only once, in the beginning. And he 
  477. probably won't count the font download time as "RIP" time; he'll 
  478. think it's perfectly natural that you'd need to download a few 
  479. fonts. MacPeople do that sort of thing all the time.
  480.  
  481.      Another workaround for this problem is to simply put all six 
  482. of your document pages into one document, and to print all six 
  483. pages into one PostScript file. But unfortunately, there are bugs 
  484. in PageStream that cause unpredictable things to happen when you 
  485. do this. Sometimes frames are rotated at random. Other times, 
  486. you'll find frames missing, or inexplicably overlayed on other 
  487. pages. I don't print more than two pages at a time into one file, 
  488. and I've had good (if mildly verbose) PostScript results.
  489.  
  490. Gee Dave, That's Such a Big Hassle!
  491. Why don't you use Calamus?
  492.  
  493.      Going to an Imagesetter using Calamus is even more of a big 
  494. deal than when using PageStream (if you can believe that!) You 
  495. see, Calamus doesn't speak PostScript, really. That's one of the 
  496. reasons it's so darn fast when using an Atari laser. By using 
  497. proprietary font and graphics encoding, it can compute the 1MB 
  498. worth of bitmapped page data required for the Atari laser on an 
  499. 8MHz 68000 in just a few seconds. But recall that a bitmap of an 
  500. 8.5" x 11" page on an Imagesetter at 2540dpi is 75MB of bitmapped 
  501. printer data. You don't want to send that to an Imagesetter over a 
  502. Centronics-type parallel interface!
  503.  
  504.      So what the swell folks with DMC in Germany did was make a 
  505. raster-image-processor hardware and software combination that 
  506. allows an Atari ST running Calamus to send the Imagesetter that 
  507. 75MB of data over the high-speed DMA port, so it gets sent 
  508. basically as fast as the computer can create it (real fast.) This 
  509. is a great system. It's the same idea as the new Goldleaf 
  510. Imagespeeder system (which uses a TT as a printer interface). But 
  511. the problem here is that unless you own an Imagesetter, (which 
  512. will set you back a good 40,000 bucks), you have to find somebody 
  513. who has an Imagesetter who has an ST/TT attached to it, who has 
  514. the Calamus hardware and software interface, you're not going to 
  515. be able to get Imageset output without going through the mail. 
  516. Good Luck! That sounds reai fun.
  517.  
  518.      I have heard of only a few places in the entire United States 
  519. that have such a setup. None are near me in Annapolis, Maryland. 
  520. Not only that, but quite frankly, I Like Adobe Fonts. There are 
  521. lots of them! They're pretty. Calamus doesn't use them. I don't 
  522. want to give them up!
  523.  
  524. Other Issues
  525.  
  526.      I mentioned that I cured all but my fourth complaint in my 
  527. list of PostScript woes. If you recall, the fourth complaint was 
  528. that I had to repeatedly send the same fonts when I was proofing 
  529. my documents from within PageStream. (Alternatively, I could print 
  530. the files to disk and then run my program on them to remove the 
  531. fonts and then send them to my printer, but it hardly seems worth 
  532. the hassle; I'm not being billed for the print time.) Ideally, I 
  533. wouldn't have to send any Type One fonts, ever, to my printer from 
  534. PageStream. It would be swell if I could just tell PageStream 
  535. "Hey, don't send that font." Or maybe PageStream should use a file 
  536. that indicates which fonts should be downloaded.
  537.  
  538.      The way it's supposed to work (I looked it up in a PostScript 
  539. programming book) is that the printer interface should be 
  540. bidirectional. The application (PageStream) should be able to ask 
  541. the printer, at the start of a given work session, "Hey, printer, 
  542. what fonts do you have online?" The printer would tell PageStream, 
  543. and then PageStream would know not to send any fonts that the 
  544. printer already knew about. But unfortunately, the parallel 
  545. printer port, which has become the defacto printer communications 
  546. standard on the ST, isn't bidirectional. And even if you go 
  547. through the serial port, which certainly works, PageStream still 
  548. does not query the printer for on-line font information. So the 
  549. effect of using the serial (RS232) port is the same as using the 
  550. faster parallel port: the blind transmission of unnecessary fonts. 
  551. Ours is not to reason why.
  552.  
  553.      I hope and pray nightly that a press release I read last year 
  554. will come true. I heard that SoftLogik had an Appletalk printer 
  555. driver in the works. Since almost every PostScript laser speaks 
  556. Appletalk, and because the TT, Mega STE (and new Falcon) are 
  557. capable of speaking Appletalk, it is the ideal interface for the 
  558. next generation. Not only is Appletalk faster than any other 
  559. currently available Atari print protocol, (along the lines of a 
  560. few hundred K per second), it would allow the kind of controlled, 
  561. interactive, reliable communication necessary for PageStream to 
  562. query its printer about font information. It would also open up 
  563. PageStream to network printing.
  564.  
  565.      Please, Deron, save us all. Make smart font-downloading a 
  566. part of the new Appletalk system! Support PostScript Level 2. Fix 
  567. the PostScript driver to print more than two pages at a time 
  568. correctly. These are just suggestions; don't let us get you down. 
  569. PageStream 2.1 is an excellent program that I still love to use, 
  570. even after being exposed to the somewhat less quirky mainstream 
  571. alternatives.
  572.  
  573. Other Type-One Gripes
  574.  
  575.      Now that I wrote my handy little font-removal program, Rick's 
  576. bitching and moaning about PageStream less. I brought almost all 
  577. my two-page PostScript files to between 100 and 400K. I only 
  578. incurred a little bit of rip-time on one page, which had some 
  579. complicated graphics. I'm happy, but recognize the absurdity of 
  580. this new and improved scenario:
  581.  
  582.      Now, when I create a PostScript file, I have to run it
  583.      through another program to surgically remove half of it.
  584.  
  585.      Why not do this the easy way and get PageStream to print
  586.      a PostScript file that's half as big?
  587.  
  588.      That's my plea to you, SoftLogik. Make this reality. End my 
  589. hell. I'll be releasing my program into the public domain in a few 
  590. days. It's a stupid, hare-brained little program whose basic 
  591. function could just as easily be accomplished with a text editor -
  592. - it just helps speed things up a bit. I let you use the mouse 
  593. with alert boxes to choose which fonts to "keep" in your file. I 
  594. will try to talk Joe into putting the program onto an upcoming PD disk.
  595. And I hope that my program will help some of you lower your rip-
  596. time bills.
  597.  
  598.      Now, of course, it's perfectly possible that I've just gone 
  599. about all this the wrong way. Maybe someone else has a better idea 
  600. on how to solve the "too many fonts" in the PostScript file 
  601. problem. There are manipulations and negotiations that can be made 
  602. using ".PSF" files, and the "FONTEQUIV" file which will cause 
  603. specified Type-One fonts not to be downloaded at print time. But 
  604. they almost always involve coming up with entire families of hard-
  605. to make "decoy" font files which will "fake-out" PageStream. I 
  606. don't think that anyone has a solution which is as simple as it 
  607. should be, which is to be able to say, "Hey PageStream, just don't 
  608. download these fonts."
  609.  
  610.      There's the issue of Type One font screen redraw speed. 
  611. Because PageStream does not cache Type One fonts, and because of 
  612. some other dumb things in its code, Type One fonts take entirely 
  613. too long to draw on-screen, especially at small point sizes. A 
  614. page worth of 10 point Type One text might very well take two 
  615. minutes to draw on-screen, even on a TT030 with a 19" monitor. 
  616. (The comparable CompuGraphic or bitmap font takes only a few 
  617. seconds.)
  618.  
  619.      The solution that SoftLogik proposes is to use what's called 
  620. an "ABF" file, or Adobe Bitmap Font file. They slightly speed up 
  621. Type One redraws, but it's still nothing spectacular. ABF's are 
  622. hard to find. There are some PC programs which will create ABF's 
  623. from the PFB (outline) files. Don Turnock's new version of 
  624. BitMaker will also create ABF files, but recognize that Type One 
  625. fonts are an incredibly diverse family and some fonts, which may 
  626. not be drawn in an entirely orthodox fashion, may give BitMaker 
  627. (or similar programs) some trouble.
  628.  
  629.      Another way out might be for SoftLogik to begin caching Type 
  630. One fonts, to create bitmaps in memory when a font is first used, 
  631. and to give the user the option of downloading the font. This way, 
  632. all Type One problems are addressed.
  633.  
  634.      1) Small point-size text is cached and drawn using the
  635.         computed bitmap font that's in memory.
  636.      2) Large point-size text is created from the cached Type-One
  637.         outline.
  638.      3) Type One fonts would not, then, be unnecessarily
  639.         downloaded to your printer or your PostScript file.
  640.         (Interactive querying of the printer could make this even
  641.          smoother.)
  642.  
  643.      PageStream has some other dumb "features" which slow down 
  644. screen redraws. The FontList file is sorted after every keystroke. 
  645. The FontEquiv file is consulted after every keystroke. That's 
  646. dumb. That kind of thing eats processor time. I understand Deron 
  647. fixed that in PageStream 2.2 for the Amiga. Maybe 2.2 will be out 
  648. soon for the ST/TT.
  649.  
  650.      Perhaps Deron could find time to support PostScript Level 2, 
  651. also. This would mean that even if you did have a large amount of 
  652. PostScript data to download, binary compression would cut it down 
  653. to a more manageable size. And Appletalk transmission would make 
  654. that even faster.
  655.  
  656.      Only when all of these changes are implemented will Type-One 
  657. font usage become as easy, fun, and fast as it could be under 
  658. PageStream. That's not to say it's unusable. It could just be so 
  659. much nicer.
  660.  
  661. Contact Me!
  662.  
  663.      If you have any great experiences or suggestions for the 
  664. general world (or me) regarding Imagesetter usage, PageStream, 
  665. Calamus, or anything else, please contact me. I would love to hear 
  666. from anyone who might shed some light, and I promise to reprint 
  667. constructive comments here.
  668.  
  669.      For anyone who's totally lost as to why anyone would want 
  670. Imagesetter output, and thinks 300dpi is just fine, they could be 
  671. right. But take a look at this month's Toad Computers ad 
  672. (centerfold). I go to a fair amount of trouble to show off the 
  673. beauty of Imageset output in those ads, and for one thing, it lets 
  674. me make those nice 11 x 17 pages. I think you'll find it's worth 
  675. your time for some work.
  676.  
  677.      So here we are. We're making the trek. It's a long and 
  678. punishing road, filled with double standards and inconsistencies. 
  679. But we're making it work. We're getting output. I don't want to 
  680. commiserate, but rather clear the air and start a forum where we 
  681. can iron out some of these very complex and confusing printing 
  682. issues. If you have anything to say about this topic, please 
  683. contact me.
  684.  
  685. Phone: (410) 544-6943
  686.   FAX: (410) 544-1FAX
  687.  MAIL: David Troy, 556 Baltimore Annapolis Blvd.,
  688.        Severna Park, MD 21146
  689. GENIE: Toad-Serv.
  690. CompuServe: 72470,1605
  691. Internet: dtroy@jhunix.hcf.jhu.edu
  692.      
  693.  
  694.  
  695.