ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) (07/26/90)
The Spring 1990 issue of MacTech Quarterly had an interesting comparison of the relative virtues of the font handling schemes in PostScript versus Apple's TrueType system. The funny thing was, the author of the article, Bill Woodruff, is a self-confessed PostScript fan[atic?]--to the extent that the editor promised a future article promoting the opposing viewpoint--but it didn't read that way to me at all. I should admit up front that I'm not familiar with Adobe's hinting scheme--I *still* haven't got hold of a copy of the Type 1 Font Format book--but I do have a copy of the TrueType documentation. Anyway, one of the points of the article was that the hints in Adobe PostScript fonts merely identify important features of each character outline, and leave it to the interpreter (and imaging engine) to perform the appropriate transformations to preserve legibility at low resolutions. This is described as a "high level" approach, as opposed to the "assembly language" scheme of TrueType, which embeds explicit tweaking instructions in the outline description. The article goes on to say that Adobe has been steadily improving its hinting software since 1984. To take advantage of the improvements, you don't need to upgrade all your existing fonts--just your PostScript implementation. This is contrasted with TrueType, where you'd need new versions of your fonts, since these need to have the hinting algorithms built-in. Does anybody else spot what's wrong with this? It seems to me that most current implementations of PostScript takes the form of ROMs inside a printer or typesetter. Upgrading such a beast is far from a straightforward, low-cost job, judging from past experience. By contrast, for people with lots of fonts, most of those will be on disk rather than in a ROM, so upgrading them will be, at worst, a matter of returning the old original disks together with the upgrade charge. In these days of non-copy-protected software, you can continue working with copies of the originals until the new versions arrive. Some vendors don't even want the old disks back--the fact that they've got a record of you as a registered user is enough for them. Of course, for those proud owners of NeXT machines with Display PostScript interpreters included in the system software, things may work rather differently... What do other people think of the relative advantages of PostScript versus TrueType? There were a few other points mentioned in the article, but they didn't strike me as being as crucial as the above one. For example, the rarity of font designers, and the headaches they have to go through to support yet another font format. I thought Apple designed TrueType to make it as easy as possible for everybody else in the world to convert their fonts to this format. Comments, anyone? Lawrence D'Oliveiro fone: +64-71-562-889 Computer Services Dept fax: +64-71-384-066 University of Waikato electric mail: ldo@waikato.ac.nz Hamilton, New Zealand 37^ 47' 26" S, 175^ 19' 7" E, GMT+12:00 To someone with a hammer and a screwdriver, every problem looks like a nail with threads.
domo@tsa.co.uk (Dominic Dunlop) (07/26/90)
[Loadsa postings on the net from NZ and Australia recently. Hi folks. What happened? Anyways...] In article <1100.26af57d3@waikato.ac.nz> ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) writes: >The Spring 1990 issue of MacTech Quarterly had an interesting comparison >of the relative virtues of the font handling schemes in PostScript versus >Apple's TrueType system. >Anyway, one of the points of the article was that the hints in Adobe >PostScript fonts merely identify important features of each character >outline, and leave it to the interpreter (and imaging engine) to perform >the appropriate transformations to preserve legibility at low >resolutions. This is described as a "high level" approach, as >opposed to the "assembly language" scheme of TrueType, which embeds >explicit tweaking instructions in the outline description. >Comments, anyone? OK. Why is a high-level approach almost always better than a low-level approach? Because a high-level approach can better accommodate new technologies simply by labelling the low-level aspects of any technology, whether new or old, as somebody else's problem. Suppose I have one of HP's spiffy new printers with Resolution Enhancement Technology. The low-level hints in a TrueType font are likely to be aimed at making ``dot/no dot'' decisions, and so cannot take advantage of an engine which can shrink dots and slightly vary their horizontal placement. High-level hints in PostScript fonts leave details of implementation to the interpreter, and a suitably clever interpreter (if Adobe or a clone maker should come up with one -- and that's quite a big if) could correctly drive RET, and so produce slightly better-looking results than TrueType. I'd guess that similar considerations would apply to anti-aliasing of character edges on grey- scale monitors by using shades of grey rather than straight black-white transitions. A PostScript RIP behind the screen should (assuming enough MIPs and memory to cook up fonts at a bearable speed) be able to do this. Would TrueType? Possibly talk of MIPs hints (pun intended) at Apple's and Microsoft's reason for going low-level. Most of the installed base of Macs and PCs has little power to spare for working out how to respond to a hint: better and cheaper to tell the poor little machine exactly what to do -- even at the cost of future problems or sub-optimal performance. Course, I could be wrong. TrueType hints may do all this. Comments anyone? -- Dominic Dunlop
capslock@wet.UUCP (Allen Crider) (07/28/90)
In article <1100.26af57d3@waikato.ac.nz> ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) writes: > > >Does anybody else spot what's wrong with this? It seems to me that >most current implementations of PostScript takes the form of ROMs >inside a printer or typesetter. Yes I know what you mean. The important upgrades in Adobe's interpreters is more CPU horsepower. I have gone through all Linotype's RIPS from 'one' to the RIP IV. I'm waiting for Linotypes emerald rip. What I'm saying is CPU power is increasing as fast as the upgrades to Adobe's interpreters. >...By contrast, >for people with lots of fonts, most of those will be on disk rather >than in a ROM, so upgrading them will be, at worst, a matter of >returning the old original disks together with the upgrade charge. Extremely expensive for vendor and user alike. Software vendors want to be sure you own a legit copy of their fonts, so they have large databases and people to use them. They have to mail you a letter announcing the amazing new upgrade. They have to make new disks and documention. I just got an upgrade for PageMaker 4.0 on the Mac. $150. >Of course, for those proud owners of NeXT machines with Display >PostScript interpreters included in the system software, things >may work rather differently... <sigh> I'm looking at 18 point Courier as I type this. It is a bitmapped font. Display PostScript needs anti-aliasing. >What do other people think of the relative advantages of PostScript >versus TrueType? TrueType is not a complete page description language. TrueType does not know how to image a circle, or halftone a 24-bit image. TrueType depends on the host for its CPU, memory, operating system and disk storage. Besides, why buy another font library? TrueType doesn't offer enough of an advantage for me to consider switching. TrueType has been delayed long enough for me to comfortably call it VAPORWARE. I cannot use it now unless I find an Alpha System 7. I guess this is because Apple wants to be sure it works on a five-year-old Mac. Apple has lost years of their advantage vis-a-vis MS-DOS by going ahead with this project. I suspect they could have bought Adobe Systems for the true cost of TrueType. I'm glad they didn't.
chrisg@microsoft.UUCP (Chris GUZAK) (07/30/90)
In article <1990Jul26.135834.9874@tsa.co.uk> domo@tsa.co.uk (Dominic Dunlop) writes: >Possibly talk of MIPs hints (pun intended) at Apple's and Microsoft's >reason for going low-level. Most of the installed base of Macs and PCs has >little power to spare for working out how to respond to a hint: better and >cheaper to tell the poor little machine exactly what to do -- even at the >cost of future problems or sub-optimal performance. ummm... my 20MHz 386 can churn out more mips that the 68k in my printer. When it comes to putting power where it can be used, I'd rather pay for it in my desktop machine (where it is much cheaper) than in my printer. I'd also like my font engine there as well, that way I get nice stuff on the screen as well as on paper. >Dominic Dunlop Chris Guzak
ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) (07/30/90)
In <1393@wet.UUCP>, capslock@wet.UUCP (Allen Crider) says "TrueType is not a complete page description language." True, but not the whole truth. TrueType is just one component of a strategy which includes QuickDraw as the basic graphics engine, and the Macintosh Print Manager to supply the complete page description. Granted the strategy isn't complete yet: at last year's Australian Apple Developer's Conference I saw a preview--for a few minutes--of the Layout Manager. This builds on two existing components of the Mac system: the Script Manager, which handles the peculiarities of non-Roman versus Roman writing systems (including both keyboard input and font display), and TextEdit, which is a set of tools for managing pieces of editable text (and which supports non-Roman scripts via the Script Manager). To these, it adds extensive layout functions, including automatic kerning, handling of contextual forms, and vertical layout of, say, Chinese text. The demo used the Zapf Chancery font, including a full range of intricate swashes and ligatures which automatically broke and rejoined to the appropriate contextual forms as the presenter was typing and editing the text. Made the standard PostScript version of Zapf Chancery look pretty weak, I can tell you. What a pity the Layout Manager is one of those pieces that isn't going to make the initial System 7.0 release... I guess the point is, that PostScript cannot be made to fit easily into a system like this--I agree it's very powerful in its own way (I don't know much about the Display PostScript extensions), but its mindset is so different from so many of the existing pieces of the Macintosh system, that it could only partially replace some of them, and interface poorly to the rest. It would only make sense if you were building an interactive, WYSIWYG, multi-script, graphical environment from scratch, so you could fit your additions around Display PostScript. The same thing is probably true of the OS/2 environment, which would be why Microsoft is licensing TrueType for use there. Apple losing "years of their advantage vis-a-vis MS-DOS"? I don't think so. Lawrence D'Oliveiro fone: +64-71-562-889 Computer Services Dept fax: +64-71-384-066 University of Waikato electric mail: ldo@waikato.ac.nz Hamilton, New Zealand 37^ 47' 26" S, 175^ 19' 7" E, GMT+12:00 To someone with a hammer and a screwdriver, every problem looks like a nail with threads.
roger@grenada.UUCP (Roger Corman) (08/01/90)
According to Adobe, low level hinting (hinting code in the fonts) was tried early in the company's history. They abandoned it and chose high-level hinting (hinting code in the rendering engine) for two main reasons. The first was that the amount of time and expense required to create each font was great--it wad have taken an unacceptable amount of time to develop a decent library of fonts. The code in each font had to be modified and debugged. Their experiences lead one to suspect that it will take awhile for a large number of TrueType fonts to become available. True, it is probably easy to convert other font outline formats to this format, but not so easy to create *quality* fonts with low level hinting. The second reason had to do with the future of the font technology. In order to get better rendering results, the low-level hinting method probably would require upgrading the fonts themselves (where the rendering hints are). With Adobe's approach, improved rendering engines can get better results with the same old font libraries. Printers being mechanical, and tied to microprocessor technology, are likely to be upgraded every few years, with newer and better rendering engines. Customers expect this. Customers don't expect to have to buy new fonts. The high-level hinting approach appears to give Adobe fonts more long term value. I ought to add what I consider another reason that high-level hinting is good for Adobe. Now that Adobe has, under market pressure, opened up their font formats such that the information in them can be readily understood, the key rendering technology is still in a black box (PostScript and ATM rendering engines). Which type of hinting is better for you and me? Whichever allows us the most fonts of the best quality for the lowest price (obviously). I personally expect it will be *years* (if ever) before the number of quality fonts now available in Adobe format are available in TrueType format. Roger Corman Island Graphics Santa Rosa, CA (707)523-4465 {uunet,ucbcad,sun}!island!roger
barnett@grymoire.crd.ge.com (Bruce Barnett) (08/03/90)
In article <862@grenada.UUCP> roger@grenada.UUCP (Roger Corman) writes: >The second reason had to do with the future of the font technology. In >order to get better rendering results, the low-level hinting >method probably would require upgrading the fonts themselves (where the >rendering hints are). With Adobe's approach, improved rendering >engines can get better results with the same old font libraries. Printers >being mechanical, and tied to microprocessor technology, are likely to >be upgraded every few years, with newer and better rendering engines. >Customers expect this. Customers don't expect to have to buy new fonts. >The high-level hinting approach appears to give Adobe fonts more long term >value. A good example of this is the new HP LaserJet III, which is 300 DPI, but uses variable size dots to get effectively 600 DPI. I doubt TrueType will look as nice as PostScript fonts on this device. Also - Font designers say it takes a year to design a decent font. I don't know how long it would take to convert it into the proper data for PostScript or TrueType, but I doubt it's trivial. How can you design low level hints in the fonts, when the output can be on 72, 200, 300, 600, 1200, or 2400 DPI machines? Do you only load the "hints" for the output devices you will drive? Getting a 10 point font to look decent on a 72 dpi screen is easy. Getting a 5 point font to look good on paper is something else. Given a screen that has QuickDraw/TrueType and a PostScript printer and typesetter, what will people do to get good output? Will they have to buy a QuickType (that's QuickDraw and TrueType) Laser Printer and Typesetter? (Bad answer - why buy more equipment?) Will QuickType be converted into PostScript? (Another Bad Answer - it won't be WYSIWYG) Will TrueType fonts be downloaded into the typesetter? (Another Bad Answer - I doubt TrueType will look as good as PostScript at 1270 or 2400 dpi). -- Bruce G. Barnett barnett@crd.ge.com uunet!crdgw1!barnett
r91400@memqa.uucp (Michael C. Grant) (08/03/90)
In article <BARNETT.90Aug2171900@grymoire.crd.ge.com>, barnett@grymoire.crd.ge.com (Bruce Barnett) writes: > How can you design low level hints in the fonts, when the output > can be on 72, 200, 300, 600, 1200, or 2400 DPI machines? Do you only > load the "hints" for the output devices you will drive? Hints aren't designed to be used on the virtual page, they are designed to be used on the physical page. What that gibberish means is that hints that are used for 6pt letters on a 300dpi printer would be equivalently used on 3pt letters on a 600dpi printer. The hints work with machine pixels, not point sizes. Needless to say, 2540dpi printers don't need many hints, eh? Michael C. Grant
chewy@apple.com (Paul Snively) (08/04/90)
In article <BARNETT.90Aug2171900@grymoire.crd.ge.com> barnett@grymoire.crd.ge.com (Bruce Barnett) writes: > A good example of this is the new HP LaserJet III, which is 300 DPI, > but uses variable size dots to get effectively 600 DPI. > > I doubt TrueType will look as nice as PostScript fonts on this device. This is indeed probably a good example of where "low-level" hints don't work too well. > Also - Font designers say it takes a year to design a decent font. > I don't know how long it would take to convert it into the proper data > for PostScript or TrueType, but I doubt it's trivial. It probably isn't, but on the other hand, the font-studly developers will probably have some very sophisticated tools for constructing/modifying/converting etc. fonts between the formats. (Let's put it this way: if they don't, we're in a world of hurt.) > How can you design low level hints in the fonts, when the output > can be on 72, 200, 300, 600, 1200, or 2400 DPI machines? Do you only > load the "hints" for the output devices you will drive? Don't let the term "low-level" fool you. TrueType fonts are still mathematical descriptions of curves, and this applies to the hints as well. They're still resolution independent. > Given a screen that has QuickDraw/TrueType and a PostScript printer > and typesetter, what will people do to get good output? If they use PostScript fonts, the PostScript engine will render them; if they use TrueType fonts, the new driver will download the TrueType rendering code and that will be used. Either way, it still works. > Will they have to buy a QuickType (that's QuickDraw and TrueType) > Laser Printer and Typesetter? (Bad answer - why buy more equipment?) This won't be necessary. > Will QuickType be converted into PostScript? > (Another Bad Answer - it won't be WYSIWYG) Right again, which is one reason it's not being done. > Will TrueType fonts be downloaded into the typesetter? > (Another Bad Answer - I doubt TrueType will look as good > as PostScript at 1270 or 2400 dpi). Well, that remains to be seen, doesn't it? :-) __________________________________________________________________________ Paul Snively Macintosh Developer Technical Support Apple Computer, Inc. chewy@apple.com Just because I work for Apple Computer, Inc. doesn't mean that I believe what they believe, or vice-versa. __________________________________________________________________________
macman@wpi.wpi.edu (Chris Silverberg) (08/04/90)
In article <862@grenada.UUCP> roger@grenada.uu.net (Roger Corman) writes: >Which type of hinting is better for you and me? Whichever allows us >the most fonts of the best quality for the lowest price (obviously). I >personally expect it will be *years* (if ever) before the number of quality >fonts now available in Adobe format are available in TrueType format. A couple years perhaps. But it will happen. Bitstream has already committed itself to fully supporting the TrueType format, and other companies are sure to follow. ._._._._._._._._._._._._._._._._._._.._._._._._._._._._._._._._._._._._._._. Chris Silverberg AOL: Silverberg Worcester Polytechnic Institute GEnie: C.Silverberg INTERNET: macman@wpi.wpi.edu SYSOP: Main Street U.S.A. BBS FIDONET: 322/575.1 508.832.7725 (1200/2400)
mneerach@b.inf.ethz.ch (Matthias Ulrich Neeracher) (08/06/90)
In article <BARNETT.90Aug2171900@grymoire.crd.ge.com> barnett@crdgw1.ge.com writes: >Getting a 10 point font to look decent on a 72 dpi screen is easy. >Getting a 5 point font to look good on paper is something else. Assuming we talk about a 300 dpi or higher resolution printer, this should be *much* easier than getting a 10 point font on screen. 5 points on a laserwriter correspond to about a 20 point screen font. Or have I missed something ? Matthias ----- Matthias Neeracher mneerach@c.inf.ethz.ch "I wouldn't recommend sex, drugs or insanity for everyone, but they've always worked for me" -- Hunter S. Thompson
hwt@.bnr.ca (Henry Troup) (08/06/90)
I'm a veteran of Dick Rubenstein's Digital Typography course. I remember his discussion of the interaction of device physics (electrostatics) and write- white and write-black devices. How can anyone design low level hints without knowing if the the device is write-white or write-black? And is there any information in systemdict (PostScript) to know which way a laser printer is set up? Exp. Note: quoting Rebenstein here: "One striking difference among laser printers is that some write a black image on the drum during formation of the image, and others write the white part of the image. Because of the way the toner is attaracted to the resulting charged image, one image will be bolder than the other, even thought _exactly_the_same_array_of_dots_ is specified. A font designed for one printer may give dramatically different results on another..." -- Henry Troup - BNR owns but does not share my opinions | 21 years in Canada... uunet!bnrgate!hwt%bwdlh490 HWT@BNR.CA 613-765-2337 |
barnett@grymoire.crd.ge.com (Bruce Barnett) (08/07/90)
In article <174@neptune.inf.ethz.ch> mneerach@b.inf.ethz.ch (Matthias Ulrich Neeracher) writes: >>Getting a 10 point font to look decent on a 72 dpi screen is easy. >>Getting a 5 point font to look good on paper is something else. > Assuming we talk about a 300 dpi or higher resolution printer, this should be >*much* easier than getting a 10 point font on screen. 5 points on a laserwriter >correspond to about a 20 point screen font. Or have I missed something ? You haven't missed anything. I was considering the case of Apple and TrueType: They already had a 10 pt. font for each of their fonts, and it would just be a task of making sure the hints would generate the fonts they already used. But I think I am confusing TrueType, PostScript/ATM and Folio. I believe Folio has a bitmap font it uses for small, common screen fonts. -- Bruce G. Barnett barnett@crd.ge.com uunet!crdgw1!barnett
glenn@heaven.woodside.ca.us (Glenn Reid) (08/07/90)
In article <3880@bwdls58.UUCP> hwt@bwdlh490.bnr.ca (Henry Troup) writes: >I'm a veteran of Dick Rubenstein's Digital Typography course. I remember his >discussion of the interaction of device physics (electrostatics) and write- >white and write-black devices. How can anyone design low level hints without >knowing if the the device is write-white or write-black? And is there any >information in systemdict (PostScript) to know which way a laser printer is >set up? The Adobe Type 1 format addresses this problem with "erosion". It's not covered at all in the Type 1 Font Format specification, as far as I can see, but if you decrypt a font and have a look, you will see some clues (see below). The engine class of the marking engine (write-white or write-black) is stored in the printer somewhere, too. This doesn't really help you to understand how it works, but the code does do something about write-white versus write-black, at least. I wonder why this wasn't covered in the specification, given that you can see vestiges of it when you decrypt a font: % ... /Erode { 9.5 dup 3 -1 roll 0.1 mul exch 0.5 sub mul cvi sub dup mul 76 0 dtransform dup mul exch dup mul add le{pop pop 1.0 1.0}{pop pop 0.0 1.5}ifelse } def % ... /erosion 1 def % default systemdict /internaldict known { 1183615869 systemdict /internaldict get exec dup % get internal dict /erosion known {/erosion get /erosion exch def} {pop} ifelse } if % ... /erode PaintType 2 ne erosion 0.5 ge and def erode {/cy cy 0.5 sub def} if % as long as assume eroding by 0.5, will get same subpixel % position whether positive or negative erosion % cy is now in its post-erosion subpixel location /ey cy dY add def % ey is integral number of pixels from cy /ey ey ceiling ey sub ey floor add def % reverse loc in pixel erode {/ey ey 0.5 add def} if % remove the erosion ey cx flipXY 1 eq {exch} if itransform exch pop y2 sub /eShift exch def /y1 y1 eShift add def /y2 y2 eShift add def /y3 y3 eShift add def % ... /erode PaintType 2 ne erosion .5 ge and def erode {/cx cx .5 sub def} if /ex cx dX add def /ex ex ceiling ex sub ex floor add def erode {/ex ex .5 add def} if ex cy flipXY -1 eq {exch} if itransform pop x2 sub /eShift exch def /x1 x1 eShift add def /x2 x2 eShift add def /x3 x3 eShift add def Disclaimer: a long time ago when I worked for Adobe I wrote a lot of font production software that added, changed, and deleted this erosion code back and forth among various versions of it, but I never knew enough about it to have any "inside information" or anything :-) So this is all just observation, guess-work, and some recollections about the basic function of erosion. Beyond that, you'll have to figure it out for it yourself.... (Glenn) cvn -- Glenn Reid PostScript/NeXT consultant glenn@heaven.woodside.ca.us Independent Software Developer ..{adobe,next}!heaven!glenn 415-851-1785
ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) (08/07/90)
In <3880@bwdls58.UUCP>, hwt@.bnr.ca (Henry Troup) asks "How can anyone design low level hints without knowing if the the device is write-white or write-black?" I just want to point out that, according to my documentation, several of the TrueType operators include a "distance type for engine characteristic compensation". This is a code which indicates whether the distance value associated with that operation is "black", "white" or "grey", but the actual details of how to compensate for this are left to the implementation. See, TrueType isn't *that* low level after all... Lawrence D'Oliveiro fone: +64-71-562-889 Computer Services Dept fax: +64-71-384-066 University of Waikato electric mail: ldo@waikato.ac.nz Hamilton, New Zealand 37^ 47' 26" S, 175^ 19' 7" E, GMT+12:00
kevina@apple.com (This space for rent) (08/08/90)
In article <3880@bwdls58.UUCP> hwt@.bnr.ca (Henry Troup) writes: > I'm a veteran of Dick Rubenstein's Digital Typography course. I remember his > discussion of the interaction of device physics (electrostatics) and write- > white and write-black devices. How can anyone design low level hints without > knowing if the the device is write-white or write-black? And is there any > information in systemdict (PostScript) to know which way a laser printer is > set up? TrueType includes instructions which can be used to compensate for engine characteristics. Between write-white and write-black, the significant difference is the resulting size of the black spot. Those instructions modify points based on that size, independent of what the size actually is. (There seems to be a feeling that TrueType's "low-level" hints somehow make it device- or resolution-dependent. This is not the case.) Type 1 fonts have something called "Erode" (in the Private dictionary) and "ErodeSW" (in internaldict-- presumably used by stroked fonts) which appear to be functions to do some sort of engine compensation. Don't know how you can distinguish between write-white and write-black in general, though. --Kevin Andresen [kevina@apple.com] "Orange whip? Orange whip? Three orange whips."
cory@three.MV.COM (Cory Kempf) (08/09/90)
chewy@apple.com (Paul Snively) writes: >If they use PostScript fonts, the PostScript engine will render them; if >they use TrueType fonts, the new driver will download the TrueType >rendering code and that will be used. Either way, it still works. Does this mean that the fonts will be down loaded as the curve equations, and a postscript program will be sent along to convert the equations into bitmaps? Or are the bitmaps going to be generated on the Mac and then downloaded to the printer/typesetter (expensive, especially on something like a 1200 dpi device)? +C -- Cory Kempf I do speak for the company (sometimes). The Enigami Co. 603 883 2474 email: cory@three.mv.com, harvard!zinn!three!cory
chewy@apple.com (Paul Snively) (08/14/90)
In article <406@three.MV.COM> cory@three.MV.COM (Cory Kempf) writes: > chewy@apple.com (Paul Snively) writes: > > >If they use PostScript fonts, the PostScript engine will render them; if > >they use TrueType fonts, the new driver will download the TrueType > >rendering code and that will be used. Either way, it still works. > > Does this mean that the fonts will be down loaded as the curve equations, > and a postscript program will be sent along to convert the equations into > bitmaps? Or are the bitmaps going to be generated on the Mac and then > downloaded to the printer/typesetter (expensive, especially on something > like a 1200 dpi device)? My understanding (I'm not a gnarly printing dude, so don't quote me on this!) is that the curve equations will be downloaded to the printer along with machine code to do the rendering. So the printer will still do the rendering, but will do it as fast as its processor can. __________________________________________________________________________ Paul Snively Macintosh Developer Technical Support Apple Computer, Inc. chewy@apple.com Just because I work for Apple Computer, Inc. doesn't mean that I believe what they believe, or vice-versa. __________________________________________________________________________
hammen@ddsw1.MCS.COM (Robert Hammen) (08/14/90)
In article <9724@goofy.Apple.COM> chewy@apple.com (Paul Snively) writes: >> Does this mean that the fonts will be down loaded as the curve equations, >> and a postscript program will be sent along to convert the equations into >> bitmaps? Or are the bitmaps going to be generated on the Mac and then >> downloaded to the printer/typesetter (expensive, especially on something >> like a 1200 dpi device)? >My understanding (I'm not a gnarly printing dude, so don't quote me on >this!) is that the curve equations will be downloaded to the printer along >with machine code to do the rendering. So the printer will still do the >rendering, but will do it as fast as its processor can. From our "experiments" with System 7.0, this is exactly what seems to be the case. When a TrueType font is called for the first time, a message pops up in the status window saying "Downloading font scaling code." This is the better way to do things (who would want to wait while your Mac generated bitmaps at 3386 dpi and shipped them down the network to your imagesetter?). We'll just have to see how fast this font-scaling code is compared to the PostScript font rasterizer. Another question is compatibility. We've got a bunch of PostScript clones in-house for testing purposes, and they both failed to work with the font scaling code (and the more ironic thing is that one of them uses the Bauer PS clone that's the basis for Microsoft's TrueImage!). It's very important for this code to work on non-680x0-based controllers, now that Adobe has introduced many of these. ///////////////////////////////////////////////////////////////////////////// / Robert Hammen | Technical Editor | Personal Publishing Magazine / / 191 S. Gary Ave. | Carol Stream, IL 60188 | (708) 462-2414 / / hammen@ddsw1.mcs.com | 76702.1135@compuserve.com | GEnie: R.HAMMEN / /////////////////////////////////////////////////////////////////////////////
dorner@pequod.cso.uiuc.edu (Steve Dorner) (08/14/90)
An unnamed source [:-)] at Apple writes: >the curve equations will be downloaded to the printer along >with machine code to do the rendering. So the printer will still do the >rendering, but will do it as fast as its processor can. Uck. Uck! UCK! UUUUUCCCCCKKKKK!!!!! More d**n controller-dependent junk. I guess my NeXT printer won't be rendering "TrueType" fonts. Nor will any other PostScript printer that uses a different controller (such as the ones that use RISC chips). Adobe ought to be pleased with this decision; their PostScript driver is looking better and better. -- Steve Dorner, U of Illinois Computing Services Office Internet: s-dorner@uiuc.edu UUCP: {convex,uunet}!uiucuxc!dorner
cmf@obie.cis.pitt.edu (Carl M. Fongheiser) (08/15/90)
In article <1990Aug14.124450.7262@ddsw1.MCS.COM> hammen@ddsw1.MCS.COM (Robert Hammen) writes: >Another question is compatibility. We've got a bunch of PostScript clones >in-house for testing purposes, and they both failed to work with the font >scaling code (and the more ironic thing is that one of them uses the Bauer >PS clone that's the basis for Microsoft's TrueImage!). It's very important >for this code to work on non-680x0-based controllers, now that Adobe has >introduced many of these. Yeah, and non-680x0 controllers have been out for years. The DEC PrintServer 40 is based on a MicroVAX, and it's been out for around 3 years now. Carl Fongheiser cmf@unix.cis.pitt.edu
chewy@apple.com (Paul Snively) (08/16/90)
In article <1990Aug14.142056.720@ux1.cso.uiuc.edu> dorner@pequod.cso.uiuc.edu (Steve Dorner) writes: > >the curve equations will be downloaded to the printer along > >with machine code to do the rendering. So the printer will still do the > >rendering, but will do it as fast as its processor can. > > Uck. Uck! UCK! UUUUUCCCCCKKKKK!!!!! More d**n controller-dependent junk. > I guess my NeXT printer won't be rendering "TrueType" fonts. Nor will any > other PostScript printer that uses a different controller (such as the > ones that use RISC chips). Well, all this really means is that different devices will probably require different drivers. What a shock--this is already the case. > Adobe ought to be pleased with this decision; their PostScript driver is > looking better and better. I think their new PostScript driver sounds pretty cool, too. Keep in mind that it's not like the use of alternative font-rendering mechanisms is mutually exclusive--folks will be able to choose whatever best suits their purposes. __________________________________________________________________________ Paul Snively Macintosh Developer Technical Support Apple Computer, Inc. chewy@apple.com Just because I work for Apple Computer, Inc. doesn't mean that I believe what they believe, or vice-versa. __________________________________________________________________________
ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) (08/22/90)
What sort of support will Level II PostScript have for contextual forms? As I've tried to point out before, this is important not only for non-Roman writing systems, but for some Roman fonts as well. * A string of text shouldn't need to contain different codes to represent different contextual forms of the same character. Instead, this should be resolved at the time the text is drawn. This keeps things simple for the application. * Is there a Level II PostScript function for drawing a *part* of a string *in context*? That is, you give it a string, but indicate that you only want a part of it drawn. The reason for passing the whole string is so that the drawing code can decide on the correct contextual forms to use. The reason for only wanting to draw part of the string is interactive WYSIWYG editing: this lets you redraw only the part of the text that has changed (saves time and avoids flicker), while displaying the correct contextual forms at all times. Lawrence D'Oliveiro fone: +64-71-562-889 Computer Services Dept fax: +64-71-384-066 University of Waikato electric mail: ldo@waikato.ac.nz Hamilton, New Zealand 37^ 47' 26" S, 175^ 19' 7" E, GMT+12:00 My other signature is a Porsche.
cory@three.mv.com (Cory Kempf) (08/22/90)
chewy@apple.com (Paul Snively) writes: >In article <406@three.MV.COM> cory@three.MV.COM (Cory Kempf) writes: >> Does this mean that the fonts will be down loaded as the curve equations, >> and a postscript program will be sent along to convert the equations into >> bitmaps? Or are the bitmaps going to be generated on the Mac and then >> downloaded to the printer/typesetter (expensive, especially on something >> like a 1200 dpi device)? >My understanding (I'm not a gnarly printing dude, so don't quote me on >this!) is that the curve equations will be downloaded to the printer along >with machine code to do the rendering. So the printer will still do the >rendering, but will do it as fast as its processor can. MACHINE CODE???? This sounds like a solution that will only work with Apple's Laserwriter (or other 68k based systems). What about all of the non-Apple postscript devices? What about the non-68k based postscript engines? Tell me it isn't so!!! (actually, at the moment, I am kinda glad that I didn't buy a postscript printer) +C -- Cory Kempf I do speak for the company (sometimes). The EnigamI Co. 603 883 2474 email: cory@three.mv.com, harvard!zinn!three!cory
clarson@ux.acs.umn.edu (Chaz Larson) (08/24/90)
In article <438@three.mv.com> cory@three.mv.com (Cory Kempf) writes: >chewy@apple.com (Paul Snively) writes: >>My understanding (I'm not a gnarly printing dude, so don't quote me on >>this!) is that the curve equations will be downloaded to the printer along >>with machine code to do the rendering. So the printer will still do the >>rendering, but will do it as fast as its processor can. > >MACHINE CODE???? This sounds like a solution that will only work with >Apple's Laserwriter (or other 68k based systems). What about all of >the non-Apple postscript devices? What about the non-68k based postscript >engines? I would presume that these non-68K-based PostScript engines have machine code of their own, which would be generated by the drivers which would be written for these printers. This seems like it would be faster than sending PostScript to be interpreted by the printer. In some fictional printer controlled by an 80486, instead of a PostScript program being interpreted by a PostScript interpreter running on the 80486, you'd have curve equations being rendered by 80486 machine code. Seems like a good idea to me, but then I'm not a gnarly printing dude, either. <chaz> -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ "Does Captain Kirk Exist?" Chinese AI Experts Offer New Evidence." - spew clarson@ux.acs.umn.edu AOL:Crowbone
woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) (08/24/90)
In article <2120@ux.acs.umn.edu>, clarson@ux.acs.umn.edu (Chaz Larson) writes: > In article <438@three.mv.com> cory@three.mv.com (Cory Kempf) writes: > >chewy@apple.com (Paul Snively) writes: > > I would presume that these non-68K-based PostScript engines have machine > by the printer. In some fictional printer controlled by an 80486, instead of > a PostScript program being interpreted by a PostScript interpreter running on > the 80486, you'd have curve equations being rendered by 80486 machine code. > Well, I think that the bezier curve stuff in Postscript (as well as the rest of the primatives) are really 'C' programs that are compiled into 68000 or whatever code. I don't think that there would be much diffrence once the parameters are set up for the function. It does appear that the Adobe interpreter uses sort of a PCODE mechanism, or at least a compact tokenization. I have dumped some of the built in operators out, especially things like dictionaries, and there does appear to be a token $82 that marks some sort of pseudo opcode. I have not dug to deeply, but once you have gotten, say the parameters to your curve the actual point generation is not handled interpretively. Cheers Woody
jtc@motcad.portal.com (J.T. Conklin) (08/24/90)
In article <2120@ux.acs.umn.edu> clarson@ux.acs.umn.edu (Chaz Larson) writes: >In article <438@three.mv.com> cory@three.mv.com (Cory Kempf) writes: >>MACHINE CODE???? This sounds like a solution that will only work with >>Apple's Laserwriter (or other 68k based systems). What about all of >>the non-Apple postscript devices? What about the non-68k based postscript >>engines? > >I would presume that these non-68K-based PostScript engines have machine >code of their own, which would be generated by the drivers which would >be written for these printers. The whole point of PostScript is that there should be only one print driver for all PostScript devices, regardless of manufacture or implementation. Including machine code defeats this. >This seems like it would be faster than sending PostScript to be interpreted >by the printer. In some fictional printer controlled by an 80486, instead of >a PostScript program being interpreted by a PostScript interpreter running on >the 80486, you'd have curve equations being rendered by 80486 machine code. Doubtless it would be faster, but just who is going to write the different 88k, R3000, 'x86, and T800 transputer implementations? Is someone going to give me the source, so I can include it in my software postscript interpreter? >Seems like a good idea to me, but then I'm not a gnarly printing dude, either. In my opinion, the downloaded machine code should only be used if the manufacturer needs to fix a bug in their PostScript implementation and doesn't want to do a general rom upgrade yet. --jtc -- J.T. Conklin UniFax Communications, Inc. CADnet Inc, San Ramon California jtc@motcad.portal.com, ...!portal!motcad!jtc
ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) (08/24/90)
In <1990Aug24.012301.23588@motcad.portal.com>, jtc@motcad.portal.com (J.T. Conklin) says "The whole point of PostScript is that there should be only one print driver for all PostScript devices, regardless of manufacture or implementation." I agree this was one of the original aims. So you tell me: has PostScript lived up to its design goals? Lawrence D'Oliveiro fone: +64-71-562-889 Computer Services Dept fax: +64-71-384-066 University of Waikato electric mail: ldo@waikato.ac.nz Hamilton, New Zealand 37^ 47' 26" S, 175^ 19' 7" E, GMT+12:00 To someone with a hammer and a screwdriver, every problem looks like a nail with threads.
jaz@icd.ab.com (Jack A. Zucker) (08/24/90)
This whole thing bothers me. People should not be making big bucks off programming languages, page description languages, etc. I hope GNU is listening. How about putting more effort into Ghostscript ?! I resent it when I have to pay Adobe $1000.00 to get Postscript in my printer, then I have to pay them again to get the matching screen fonts. I'm sure the situation won't be much different with Microsoft or Apple. Hurry GNU, Hurry.... -jaz
dhoyt@vx.acs.umn.edu (08/25/90)
In article <1331.26d577e2@waikato.ac.nz>, > ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) writes... >>In <1990Aug24.012301.23588@motcad.portal.com>, >> jtc@motcad.portal.com (J.T. Conklin) >>says "The whole point of PostScript is that there should be only one print >>driver for all PostScript devices, regardless of manufacture or >>implementation." > >I agree this was one of the original aims. So you tell me: has PostScript >lived up to its design goals? Yes. I can create a postscript file in Pagemaker, proof it on a Laserwriter then send the same file to a printer to print on a Linotronic or Agfa typesetter with only a small chance of problems. I don't care what their rasteriser is and they don't care about mine. Downloading 68000 code seems very stupid to me. But I don't really care what TrueType does. I'll never use it. I've got my fonts, I've got my ATM, I've got real Postscript printers in house and at the printers. The pros all use postscript. Where does that leave Royal & TrueType? david | dhoyt@vx.acs.umn.edu | dhoyt@umnacvx.bitnet
rcd@ico.isc.com (Dick Dunn) (08/25/90)
jaz@icd.ab.com (Jack A. Zucker) writes, inter alia: > I resent it when I have to pay Adobe $1000.00 to get Postscript in > my printer... What's the source of this $1000 story? I've heard it before, but I've never been able to make sense of it. Current market price for Adobe's PostScript add-on cartridge for the LaserJet II is $300--and that's a physical gadget, not just a license. Seems like a pretty good buy to me. -- Dick Dunn rcd@ico.isc.com -or- ico!rcd Boulder, CO (303)449-2870 ...I'm not cynical - just experienced.
chewy@apple.com (Paul Snively) (08/25/90)
In article <438@three.mv.com> cory@three.mv.com (Cory Kempf) writes: > >In article <406@three.MV.COM> cory@three.MV.COM (Cory Kempf) writes: > > >> Does this mean that the fonts will be down loaded as the curve equations, > >> and a postscript program will be sent along to convert the equations into > >> bitmaps? Or are the bitmaps going to be generated on the Mac and then > >> downloaded to the printer/typesetter (expensive, especially on something > >> like a 1200 dpi device)? > > >My understanding (I'm not a gnarly printing dude, so don't quote me on > >this!) is that the curve equations will be downloaded to the printer along > >with machine code to do the rendering. So the printer will still do the > >rendering, but will do it as fast as its processor can. > > MACHINE CODE???? This sounds like a solution that will only work with > Apple's Laserwriter (or other 68k based systems). What about all of > the non-Apple postscript devices? What about the non-68k based postscript > engines? Geez, relax, will ya? What this means is that different devices will probably require a different driver (gee, what a shock. That already seems to be true). Or maybe the folks in printing land will see if the device has a 680x0 and will use machine code if so, otherwise downloading rendering code in PostScript. The truth is that _I don't know_ if any of this is correct; this is what I seem to remember from the cobwebs. Printing ain't my job, a fact for which I thank God every day. __________________________________________________________________________ Paul Snively Macintosh Developer Technical Support Apple Computer, Inc. chewy@apple.com Just because I work for Apple Computer, Inc. doesn't mean that I believe what they believe, or vice-versa. __________________________________________________________________________
jeffe@eniac.seas.upenn.edu (George Jefferson ) (08/25/90)
Adobe liscense + Apple markup - competetion = ~$1000. It looks to me like Adobe/HP are trying to drive Apple out of the printer business before (or in spite of) the introduction of TrueType
glenn@heaven.woodside.ca.us (Glenn Reid) (08/26/90)
In article <9931@goofy.Apple.COM> chewy@apple.com (Paul Snively) writes: >> MACHINE CODE???? This sounds like a solution that will only work with >> Apple's Laserwriter (or other 68k based systems). What about all of >> the non-Apple postscript devices? What about the non-68k based > >Geez, relax, will ya? What this means is that different devices will >probably require a different driver (gee, what a shock. That already >seems to be true). The Macintosh already downloads machine code, which is also one of the reasons that Mac-generated PostScript files run into trouble on other brands of printers. There is "bit-smoothing" code in eexec form buried in LaserPrep (or was the last time I looked). Luckily, it checks to see if the product is an Apple LaserWriter before executing it. Unluckily, in the process of NOT executing it, it often NOT executes the rest of your job too. Adobe's driver should fix this, I would imagine. In the meantime it continues to be a first-class headache for everyone trying to use Mac-generated PostScript. In fact, I'm sure it's one of the most frequently asked questions in this newsgroup. And no, different devices really shouldn't require a different driver, except where printer-specific features like trays are concerned, and even that should go away with PostScript Level II. The one thing that is truly device-independent in PostScript is the fonts. There are something like 90 Adobe-licensed PostScript devices out in the world, I think. All of them work with the same font library, from IBM Electro-compositors hooked up to IBM 370 mainframes right through to Display PostScript on a NeXT machine. I think it would be very bad if my fonts were written in (or rendered by) machine code. I don't think the instruction sets on the IBM 370 and the 68030 are very similar. What Apple wants to do can be done, of course, but it will require re-building a lot of what already exists. People who are serious PostScript users require color printers, film recorders, typesetters, large plotters, high-speed printers, duplex printers, envelopes, stapling, and endless other things. Unless Apple manages to license technology, get products built, and keep the system end of things tied up neatly, it is likely to be messy, and I can't believe they could ever close the gap on the products already available in the world. Need a color PostScript printer? There are at least five or six of them to choose from. Need 11x17 output? 600dpi on plain paper? full-color slides? They're all shipping. And your fonts work. Maybe three years ago it might have been all right to build just a low-cost, low-speed laser printer and complement it with a high-resolution phototypesetter, but that's just the tip of the iceberg in 1990. Anyway, we'll wait and see. A brand new font technology will present many major software and hardware issues before becoming successful. These are just opinions. I speak for no one, and probably would be better off just not speaking, but what the heck, it's Saturday. -- Glenn Reid RightBrain Software glenn@heaven.woodside.ca.us PostScript/NeXT developers ..{adobe,next}!heaven!glenn 415-851-1785
jaz@icd.ab.com (Jack A. Zucker) (08/27/90)
In article <1990Aug24.213407.26653@ico.isc.com>, rcd@ico.isc.com (Dick Dunn) writes: > What's the source of this $1000 story? I've heard it before, but I've > never been able to make sense of it. > > Current market price for Adobe's PostScript add-on cartridge for the > LaserJet II is $300 You're right. The Postscript clones have obviously driven the price down. But, I still have to shell out additional money to get the screen fonts ! -jaz
philip@minnie.Stanford.EDU (Philip Machanick) (08/28/90)
In article <1798@abvax.UUCP>, jaz@icd.ab.com (Jack A. Zucker) writes: > You're right. The Postscript clones have obviously driven the price > down. But, I still have to shell out additional money to get the > screen fonts ! I don't know what kind of computer you use, but I've never had to pay for screen fonts. Additional PostScript fonts, yes, but not bitmapped versions of fonts supplied with the printer. Philip Machanick philip@pescadero.stanford.edu
zben@umd5.umd.edu (Ben Cranston) (08/28/90)
In article <257@heaven.woodside.ca.us> glenn@heaven.woodside.ca.us (Glenn Reid) writes: > The Macintosh already downloads machine code, which is also one of the > reasons that Mac-generated PostScript files run into trouble on other > brands of printers. There is "bit-smoothing" code in eexec form buried > in LaserPrep (or was the last time I looked). Luckily, it checks to see > if the product is an Apple LaserWriter before executing it. Unluckily, > in the process of NOT executing it, it often NOT executes the rest > of your job too. Adobe's driver should fix this, I would imagine. In > the meantime it continues to be a first-class headache for everyone trying > to use Mac-generated PostScript. In fact, I'm sure it's one of the most > frequently asked questions in this newsgroup. For the record, the "flushfile"s were replaced with code that reads up to a known %-comment in level 6.0 (dict version 70) printing. The problem Glenn alludes to is present in 5.0 and 5.2 printing. When doing my vetted versions I replaced the flushfiles with painstakingly-counted skip-counts, like that used to skip the LaserWriter II NT retrofit code near the top. There are other gotchas that are still there. Look for calls to "setsccinteractive", "waittimeout", and "setdefaulttimeouts". Or get "macps" from sumex, run it on a command-K file, then diff it :-) -- Ben Cranston <zben@umd2.umd.edu> A determined iconoclast, it would be better to assume the opinion expressed above is the diametric OPPOSITE to that of the Warm and Fuzzy Network Group of Egregious State University...
woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) (08/28/90)
In article <7190@umd5.umd.edu>, zben@umd5.umd.edu (Ben Cranston) writes: > In article <257@heaven.woodside.ca.us> glenn@heaven.woodside.ca.us > > For the record, the "flushfile"s were replaced with code that reads up to a > known %-comment in level 6.0 (dict version 70) printing. The problem Glenn This technique of skipping headers and such, by watching for (%%%) in the input stream fails on the NEC 890. It will never see them. Cassidy and Greene's fonts don't work because of it. You can send one down to the printer, but it will happily eat anything else. Apparently the %'s are not captured by the interpreter. It appears that comments are just tossed away. I posted some code to the net some months back that demonstrated this, but I never saw any reply as to whether or not other people saw the same thing. I DO know that I spent a very LONG time converting a bunch of C&G fonts to work properly on the NEC890. Cheers Woody > > There are other gotchas that are still there. Look for calls to > "setsccinteractive", "waittimeout", and "setdefaulttimeouts". > > Or get "macps" from sumex, run it on a command-K file, then diff it :-) > > -- > Ben Cranston <zben@umd2.umd.edu> > A determined iconoclast, it would be better to assume the opinion expressed > above is the diametric OPPOSITE to that of the Warm and Fuzzy Network Group > of Egregious State University...
izumi@mindseye.berkeley.edu (Izumi Ohzawa) (08/28/90)
In article <1798@abvax.UUCP> jaz@icd.ab.com (Jack A. Zucker) writes: > >You're right. The Postscript clones have obviously driven the price >down. But, I still have to shell out additional money to get the >screen fonts ! For NeXT computer which comes with DPS (Display PostScript), you only pay once for the screen & printer. I wonder how much NeXT pays Adobe for DPS per machine, but it can't be $1000 considering that the whole thing is $6.5k for universities. Window Server is the printer. Izumi Ohzawa, izumi@violet.berkeley.edu
blarsen@spider.uio.no (Bjorn Larsen) (08/29/90)
In article <9931@goofy.Apple.COM> chewy@apple.com (Paul Snively) writes: > Geez, relax, will ya? What this means is that different devices will > probably require a different driver (gee, what a shock. That already > seems to be true). False. I run a printer spooler that accepts PostScript code from PCs, VAX/VMS, Unix, NOS/VE and Macs. It spools output to a big variety of PostScript printers; most with Adobe RIPs: Apple LaserWriter, LN03R, LPS-40, LPS-20, Agfa Matrix SlideWriter, QMS 100 ColorScript, TI MicroLaser, Linotronic 100/RIP3, and others. In general I can send PostScript code generated on a Mac to any device. Just a few programs demand special attention: - the Apple LaserPrep file is badly written. I have prepared custom versions of this for the various RIPs, and my spooler strips the original ProcSet and adds one suited for the target printer. - the Apple LaserWriter driver doesn't care to document the use of fonts (using DocumentFonts/DocumentNeededFonts), so I have to do a RE-search through the document for font invocations, and add the right comments before handing the PS file to the font downloader. A drag, but it works. - Freehand 2.0 insists on using letter/a4 operators without checking if they are defined or not. I use the ProcSet-substitution for that as well. - Fullwrite Professional 1.1 starts one of it's ProcSets with %%BeginProcSet as required, but ends it with %% End of Fullwrite ProcSet so as to implement my ProcSet substitution, I have to recognize that as a legal way to end a ProcSet. Ugh. Apart from these minor things (which my spooler fixes for me), I am able to print from any Mac to any make of PostScript printer. No matter what the hardware in the RIP consists of. So yes, PostScript has acheived it's goal about being device independent. And all in all - most PostScript generating software does a decent job about being printer-independent. -- Bjorn Larsen University of Oslo, Norway Bjorn.Larsen@usit.uio.no
glenn@heaven.woodside.ca.us (Glenn Reid) (08/29/90)
In article <1511@chinacat.Unicom.COM> woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) writes: >This technique of skipping headers and such, by watching for (%%%) in the >input stream fails on the NEC 890. It will never see them. Cassidy and >Greene's fonts don't work because of it. You can send one down to the >printer, but it will happily eat anything else. Apparently the %'s >are not captured by the interpreter. It appears that comments are >just tossed away. I posted some code to the net some months back that >demonstrated this, but I never saw any reply as to whether or not other >people saw the same thing. We've been around this before. You posted a while ago that that the LC-890 stripped out comments in the scanner and they couldn't be read by the interpreter. I posted a test program that would decide whether or not the % comments were indeed getting through. At least three people independently confirmed that it worked on their NEC LC-890 printers. You say "I never saw any reply...". Maybe you were out of town that week, or maybe you don't read followup postings to your own postings, since it was the next day that these all appeared. Summary: it's not the LC-890, it's either your analysis of the problem, your spooler, the fonts themselves, or something else. It's possible that the fonts are using "readstring" and expecting a precise number of bytes, and some conversion of carriage-return newline sequences to just newline might make the byte count wrong, as a guess. It is a reasonable technique to read the input stream until you see a % flag, as Ben suggested. Glenn -- Glenn Reid RightBrain Software glenn@heaven.woodside.ca.us PostScript/NeXT developers ..{adobe,next}!heaven!glenn 415-851-1785
woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) (08/29/90)
In article <258@heaven.woodside.ca.us>, glenn@heaven.woodside.ca.us (Glenn Reid) writes: > In article <1511@chinacat.Unicom.COM> woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) writes: > >This technique of skipping headers and such, by watching for (%%%) in the > >input stream fails on the NEC 890. It will never see them. Cassidy and > >people saw the same thing. > > We've been around this before. > > You posted a while ago that that the LC-890 stripped out > comments in the scanner and they couldn't be read by the > interpreter. > > I posted a test program that would decide whether or not the > % comments were indeed getting through. At least three people > independently confirmed that it worked on their NEC LC-890 > printers. You say "I never saw any reply...". Maybe you were I did indeed see Glens code, and the followups. I then posted the following message, which clearly demonstrates the problem. I never saw any reply, and have no Idea whether anyone tested it or not. I'd like to see someone test this. This is not a complete font, most of the guts have been cut out, but there should be enough here to demonstrate the problem. After coming back from a long weekend vacation, attending a flint knappers convention (studying the art of making stone tools), I have read the news and found Glenns bit of code and the test run of it. Since this problem came up over a year and a half ago, I decided to go get a copy of one of the fonts, delete all but 1 character and post it. I may be dead wrong about the input scanner, but regardless, the readstring operator does not find the (%%%) and thus hangs forever on the second font download in a NEC 890. The symptom is that you can download 1 font. downloading another font causes the machine to hang looking for the %%%. This failure causes it to stay in the procesing state indefintly. The QMS-ps810 does not exhibit the problem, and presumably other machines don't either. C & G had tested it exclusively on Apples, and had no problems. I came up with a crude, simple workaround that fixed the problem. We downloaded for Pagemaker on the fly, i.e. non-persistant fonts, and I changed the dictionary name Casa1 to Casa(n) where (n) was some arbitrary number. It worked. It is not optimal. You should be able to copy this to a NEC-890 (using whatever) and the second time you copy it, it should hang the machine. changing the dictionary name, and deleteing the comment hunting code fixed the problem. Cheers Woody %!PS-Adobe-2.0 %%Title: Fontographer 2.4.1 %%FontName: GalileoRoman %%CreationDate: 1/9/89 7:52:05 PM %%Creator: RICHARD WARE %%Pages: 0 %% Galileo*Roman, Version 3.1a, Copyright ) 1987-1988 by Richard A. Ware. All Rights Reserved. %%EndComments %serverdict begin 0 exitserver % remove first percent sign for PC fonts... systemdict /currentpacking known { /SavPak currentpacking def true setpacking }if userdict /Casa1 known % if the preamble was known { { currentfile( )readstring { (%%%)eq %look for separator { exit }if } { pop %hangs, looking forever }ifelse }loop }if userdict begin/Casa1 39 dict def Casa1 begin/NL 0 def/B{bind def}bind def /Cache{NL 0 eq{setcachedevice}{6{pop}repeat}ifelse 0 0 moveto}B /SetWid{NL 0 eq{0 setcharwidth setgray}{pop setgray}ifelse 0 0 moveto}B /ShowInt{/NL NL 1 add store BC2 grestore/NL NL 1 sub store}B /charStr(.)def/Strk 0 def/Sstrk{/Strk 1 store}B /Cfill{PaintType 0 eq{Strk 0 eq{exec}{gsave exec grestore currentgray 0 ne{0 setgray}if stroke}ifelse}{pop stroke}ifelse}B /Fill{{fill}Cfill}def/Eofill{{eofill}Cfill}def/Cp{closepath 0 0 moveto}def /ShowExt{EFN exch get findfont setfont matrix currentmatrix exch InvMtx concat 0 0 moveto charStr 0 3 -1 roll put PaintType 0 ne Strk 0 ne or currentgray 0 ne or{charStr false charpath setmatrix Fill} {charStr show pop}ifelse grestore}B/stringtype{{UCS}forall}B /arraytype/exec load def/packedarraytype/exec load def /BuildChar{Casa1 begin exch begin BC2 end end}B /BC2{save 1 setflat exch StrokeWidth setlinewidth/Strk 0 store Encoding exch get dup CharStrings exch known not{pop/.notdef}if CharStrings exch get newpath dup type exec restore}B /UVec[{rmoveto}{rlineto}{rcurveto}{ShowExt}{]concat}{Cache}{setlinewidth} {ShowInt}{setlinecap}{setlinejoin}{gsave}{[}{Fill}{Eofill}{stroke}{SetWid} {100 mul add}{100 mul}{100 div}{Cp}{Sstrk}{setgray}]def /UCS{dup 200 lt{100 sub}{dup 233 lt{216 sub 100 mul add} {233 sub UVec exch get exec}ifelse}ifelse}B /CD{/NF exch def{exch dup/FID ne{exch NF 3 1 roll put} {pop pop}ifelse}forall NF}B /MN{1 index length/Len exch def dup length Len add string dup Len 4 -1 roll putinterval dup 0 4 -1 roll putinterval}B /RC{(|______)anchorsearch {1 index MN cvn/NewN exch def cvn findfont dup maxlength dict CD dup/FontName NewN put dup /Encoding MacVec put NewN exch definefont pop}{pop}ifelse}B /RF{dup cvn FontDirectory exch known{pop}{RC}ifelse}B /MacVec 256 array def MacVec 0 /Helvetica findfont /Encoding get 0 128 getinterval putinterval MacVec 127 /DEL put MacVec 16#27 /quotesingle put MacVec 16#60 /grave put/NUL/SOH/STX/ETX /EOT/ENQ/ACK/BEL/BS/HT/LF/VT/FF/CR/SO/SI/DLE/DC1/DC2/DC3/DC4/NAK/SYN /ETB/CAN/EM/SUB/ESC/FS/GS/RS/US MacVec 0 32 getinterval astore pop /Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute /agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave /ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute /ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis /dagger/degree/cent/sterling/section/bullet/paragraph/germandbls /registered/copyright/trademark/acute/dieresis/notequal/AE/Oslash /infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation /product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash /questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft /guillemotright/ellipsis/nbspace/Agrave/Atilde/Otilde/OE/oe /endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge /ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl /daggerdbl/periodcentered/quotesinglbase/quotedblbase /perthousand/Acircumflex/Ecircumflex/Aacute /Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave/Oacute/Ocircumflex /apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde /macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron MacVec 128 128 getinterval astore pop end end %%%%%% %%EndProlog /$GalileoRoman 19 dict def $GalileoRoman begin/PaintType 0 def/FontType 3 def /StrokeWidth 0 def/FontBBox[-52 -251 1006 832]def %/UniqueID 4835107 def /FontMatrix[0.001000 0 0 0.001000 0 0]def/InvMtx[1000 0 0 1000 0 0]def /CharStrings 257 dict def/FontName (GalileoRoman) def /BuildChar{Casa1/BuildChar get exec}def /FontInfo 3 dict def FontInfo begin /UnderlinePosition -166 def/UnderlineThickness 19 def end /Encoding Casa1/MacVec get def CharStrings begin/.notdef{500 0 setcharwidth} def /NUL<646486D97CDA88D97EDAEE87D97DDAE9F5>def /HT<6464AE6DDBB06FDBEEAF6EDBE9F5>def /CR<6464AE95DAB097DAEEAF96DAE9F5>def /space<AADA6490D9A9D992D9ABD9EE91D9AAD9E9F5>def /exclam<96DA649D4064DA7FDFEEBCA8DEE97684A484B664EB704E73387221EB62453236 D43236D4EB5A64EA64643473DC3292DCEB637A659172A7EBFC81D9C2E9266426066605EB A563A4C262C3EBFCF5>def end/EFN[]def end systemdict/currentpacking known{SavPak setpacking}if /GalileoRoman $GalileoRoman definefont pop /GalileoRoman findfont/EFN get Casa1 begin{RF}forall end Cheers Woody
cortesi@infmx.UUCP (David Cortesi) (08/29/90)
In article <9931@goofy.Apple.COM> chewy@apple.com (Paul Snively) writes: >In article <438@three.mv.com> cory@three.mv.com (Cory Kempf) writes: >> MACHINE CODE???? >Geez, relax, will ya? What this means is that different devices will >probably require a different driver (gee, what a shock. That already >seems to be true). Absolutely not true. We have printers from TI, Imagen, QMS, and Printware, and we drive them all from the identical UNIX spooling daemons. These include Adobe-license RIPS of different change levels and at least one clone (Printware's PrintScript). We shove at them the output of FrameMaker (on Sun and NeXT), Eroff, and Wingz (Sun and NeXT) and they print it all, plus EPS clip art from Adobe Illustrator on the Mac. To me it is pure magic how you can hook up any arbitrary PostScript printer to a serial port and start pouring documents through it with *no* configuration except to set the baud rate. It would be totally unacceptable to have to maintain separate spooling or driving code for each make of printer. That would be a major step backward.
zben@umd5.umd.edu (Ben Cranston) (08/30/90)
In article <1513@chinacat.Unicom.COM> woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) writes: > ... This is not a complete font, most of the guts have been > cut out, but there should be enough here to demonstrate the problem. > /Casa1 known % if the preamble was known > { > { > currentfile( )readstring > { > (%%%)eq %look for separator > { > exit > }if > } > { > pop %hangs, looking forever > }ifelse > }loop > }if I think this is broken. Seems to me this will read 3-character chunks from the input and compare them against %%%, but if the stuff being skipped is not EXACTLY a multiple of 3 characters long you could get a test against <newline> % % or % % <somethingelse> and fail to find the target. Remember that (according to red book) readstring does NOT stop on line bdry! Perhaps if you used readline, gave it a fairly longish string to read into, ==== and used an anchorsearch to match the three first characters on the line, ============ this could be made to work... Am I off base? -- Ben Cranston <zben@umd2.umd.edu> A determined iconoclast, it would be better to assume the opinion expressed above is the diametric OPPOSITE to that of the Warm and Fuzzy Network Group of Egregious State University...
woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) (08/30/90)
In article <7214@umd5.umd.edu>, zben@umd5.umd.edu (Ben Cranston) writes: > In article <1513@chinacat.Unicom.COM> woody@chinacat.Unicom.COM > (Woody Baker @ Eagle Signal) writes: > > > currentfile( )readstring > > { > > (%%%)eq %look for separator > > { > > exit > > }if > > } > I think this is broken. Seems to me this will read 3-character chunks from > the input and compare them against %%%, but if the stuff being skipped is That is why the string of comments is 6 characters long. That way you should be garanteed to get at least one match. I tried making the line 10 or 12 characters long, and it still failed. I also tried changing the (%%%) to something else like (***) and changing the line of comments to %*********** This failed also. What I cannot understand, is why this works on a PS-810, and Apple Laserwriters, but fails on the NEC 890. (and only the nec 890 to my knowlege). I know that things worked flawlessly on my PS-810, but failed on the nec 890. Cheers Woody > <newline> % % or % % <somethingelse> and fail to find the target.
glenn@heaven.woodside.ca.us (Glenn Reid) (08/31/90)
In article <7214@umd5.umd.edu> zben@umd5.umd.edu (Ben Cranston) writes: [ example with "readstring" omitted] >I think this is broken. Seems to me this will read 3-character chunks from >the input and compare them against %%%, but if the stuff being skipped is >not EXACTLY a multiple of 3 characters long you could get a test against ><newline> % % or % % <somethingelse> and fail to find the target. >Remember that (according to red book) readstring does NOT stop on line bdry! > >Perhaps if you used readline, gave it a fairly longish string to read into, > ==== >and used an anchorsearch to match the three first characters on the line, > ============ >this could be made to work... > >Am I off base? No, you are right on target. I think you have hit on exactly the right analysis of the code. "readstring" always reads three bytes, and if the byte alignment of the PS code is off by even a single byte, you'll read right past the comments. Your solution to use "readline" and a large buffer will work well, especially since the code is usually designed to skip something very specific, and you already know how long the longest line might be. The other possibility is to actually read the data one byte at a time, and exit when you see the first '%', regardless of where it might be. That will always work (no buffer overflows or alignment problems), but is a lot slower and might exit at the wrong place if more comments are introduced into the file somewhere. Anyway, the original program as posted would fail on ANY PostScript printer under the right circumstances. It's certainly a mis-analysis to blame it on the serial driver in the NEC LC-890. If the PS is generated on a Mac and printed from a Mac you probably get lucky, but even the act of transfering the file to another computer will very likely change the byte count (newlines added or subtracted) somewhere along the way. /Glenn -- Glenn Reid RightBrain Software glenn@heaven.woodside.ca.us PostScript/NeXT developers ..{adobe,next}!heaven!glenn 415-851-1785
zben@umd5.umd.edu (Ben Cranston) (08/31/90)
I wrote >> I think this is broken. Seems to me this will read 3-character chunks from >> the input and compare them against %%%, but if the stuff being skipped is In article <1527@chinacat.Unicom.COM> woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) writes: > That is why the string of comments is 6 characters long. That way you > should be garanteed to get at least one match. I tried making the > line 10 or 12 characters long, and it still failed. I also tried > changing the (%%%) to something else like (***) and changing the > line of comments to > %*********** > This failed also. Sorry Woody and all the others who had to read my previous posting, I had concentrated on the code and missed the fact that the end sentinal was actually SIX percent signs. > What I cannot understand, is why this works on a PS-810, and Apple > Laserwriters, but fails on the NEC 890. (and only the nec 890 to my > knowlege). I know that things worked flawlessly on my PS-810, but > failed on the nec 890. It is a good question why it does different things in any case. Is it possible that NEC lets the carriage returns and the line feeds through unmolested? Is it possible there is a certain minimal string size imposed for efficiency and the ( ) is allocating more memory than just three characters, so the readstring is actually reading larger chunks? If I had one of these printers I would arrange to send back the chunks: { %loop currentfile( )readstring { %ifelse dup == % added by zben (%%%) eq %look for separator { exit } if }{ pop %hangs, looking forever } ifelse } loop The output from the == would be very informative. It is possible the (%%%) construct is being improperly parsed. Does %% mean anything to this printer? Is it possible the exit could be exiting the IF block but not the LOOP block? Cannot speculate, must have experimental evidence... I still think I would have done it like this: 80 string { %loop dup currentfile exch readline exch (%%%) eq or { exit } if } loop pop (You can tell I'm an old dinosaur tamer, that 80 is a dead giveaway! :-) -- Ben Cranston <zben@umd2.umd.edu> A determined iconoclast, it would be better to assume the opinion expressed above is the diametric OPPOSITE to that of the Warm and Fuzzy Network Group of Egregious State University...
chewy@apple.com (Paul Snively) (08/31/90)
In article <5079@infmx.UUCP> cortesi@infmx.UUCP (David Cortesi) writes: > In article <9931@goofy.Apple.COM> chewy@apple.com (Paul Snively) writes: > >In article <438@three.mv.com> cory@three.mv.com (Cory Kempf) writes: > >> MACHINE CODE???? > >Geez, relax, will ya? What this means is that different devices will > >probably require a different driver (gee, what a shock. That already > >seems to be true). > > Absolutely not true. We have printers from TI, Imagen, QMS, and Printware, > and we drive them all from the identical UNIX spooling daemons. These > include Adobe-license RIPS of different change levels and at least one > clone (Printware's PrintScript). We shove at them the output of FrameMaker > (on Sun and NeXT), Eroff, and Wingz (Sun and NeXT) and they print it all, > plus EPS clip art from Adobe Illustrator on the Mac. I believe that; I was referring to the Macintosh drivers. PostScript definitely does its job of being independent well; it seems to be the QuickDraw to PostScript conversion that can be problematic. __________________________________________________________________________ Paul Snively Macintosh Developer Technical Support Apple Computer, Inc. chewy@apple.com Just because I work for Apple Computer, Inc. doesn't mean that I believe what they believe, or vice-versa. __________________________________________________________________________
glenn@heaven.woodside.ca.us (Glenn Reid) (08/31/90)
In article <1527@chinacat.Unicom.COM> woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) writes: >That is why the string of comments is 6 characters long. That way you >should be garanteed to get at least one match. I tried making the >line 10 or 12 characters long, and it still failed. I also tried >changing the (%%%) to something else like (***) ... Woody, you're using the "eq" operator. It has to match EXACTLY for "eq" to be happy. Making the string longer has nothing to do with it. Go read the green book, page 201, and look at the "userexec" procedure. There is code in there that flushes to a comment. Notice that it uses the "readline" operator, as suggested by Ben Cranston. The bottom line is that the technique of using "readstring" and "eq" can never be made to work 100% of the time. To be fair, neither can "readline", since version 23.0 of the LaserWriter (the LaserWriter "Classic") has a version of "readline" that doesn't handle all possible combinations of carriage return and linefeed pairs. But it's still the right way to go. And use "anchorsearch", not "eq", to find your end-of-stuff flag. >What I cannot understand, is why this works on a PS-810, and Apple >Laserwriters, but fails on the NEC 890. (and only the nec 890 to my >knowlege). I know that things worked flawlessly on my PS-810, but >failed on the nec 890. I cannot understand it either, but it's more likely to be the way you transmit the file to the printer than it is the printer itself. If you make the code better, along the lines of the various suggestions, it will not fail on the LC-890, or I'll eat a toner cartridge. /Glenn -- Glenn Reid RightBrain Software glenn@heaven.woodside.ca.us PostScript/NeXT developers ..{adobe,next}!heaven!glenn 415-851-1785
woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) (08/31/90)
In article <7221@umd5.umd.edu>, zben@umd5.umd.edu (Ben Cranston) writes: > I wrote > > imposed for efficiency and the ( ) is allocating more memory than just > three characters, so the readstring is actually reading larger chunks? I think that this would violate the specs. > If I had one of these printers I would arrange to send back the chunks: > > { %loop > currentfile( )readstring > { %ifelse > dup == % added by zben > (%%%) eq %look for separator > { exit } if > }{ > pop %hangs, looking forever > } ifelse > } loop > The output from the == would be very informative. It is possible the I hope some one will try this. My hypothesis is that someone decided that it was ineffecient for the interpreter to have to read in, and parse out a comment line, so they simply prevented readstring from ever getting it. Glenn posted some code that seems to refute that, but it seems to me to be the only thing that explains all the conditions. I don't remember what his code was now, I could go hunt it up in the archieves, but I seem to remember that it might not have excercized readstring. > > I still think I would have done it like this: > > 80 string > { %loop > dup currentfile exch readline exch > (%%%) eq or { exit } if > } loop > pop > > (You can tell I'm an old dinosaur tamer, that 80 is a dead giveaway! :-) Yep. No kidding. I am one also. Last count I had 16 diffrent computers sitting around my house. Most of them are even in working condition!. Some of them are OLD. The computer in my PS-810 has more horsepower than any of them 8=} Cheers Woody Sorry for these few lines, but inews is really picky. It won't post anything unless the poster has written more new text than he has included. So In order to satisfy it, these lines are being written. :=>
dorner@pequod.cso.uiuc.edu (Steve Dorner) (09/01/90)
In article <9995@goofy.Apple.COM> chewy@apple.com (Paul Snively) writes: >I believe that; I was referring to the Macintosh drivers. PostScript >definitely does its job of being independent well; it seems to be the >QuickDraw to PostScript conversion that can be problematic. Yes, because Apple insists on putting hardware dependencies, including 68000 programs in hex, in its LaserPrep. (Does anyone else feel a sense of deja vu in this thread?) To have such built into TrueType (if it is) would pose a big problem for everyone with non-Apple printers. Perhaps that is exactly what Apple has in mind. Like I said before, I'm ordering Adobe's Mac PostScript printer driver as soon as they release it. I suggest anyone with non-Apple printers and Macintoshes do the same. -- Steve Dorner, U of Illinois Computing Services Office Internet: s-dorner@uiuc.edu UUCP: uunet!uiucuxc!uiuc.edu!s-dorner
wilkins@jarthur.Claremont.EDU (Mark Wilkins) (09/03/90)
In article <1990Aug31.194241.27316@ux1.cso.uiuc.edu> dorner@pequod.cso.uiuc.edu (Steve Dorner) writes: >In article <9995@goofy.Apple.COM> chewy@apple.com (Paul Snively) writes: >>I believe that; I was referring to the Macintosh drivers. PostScript >>definitely does its job of being independent well; it seems to be the >>QuickDraw to PostScript conversion that can be problematic. > >Yes, because Apple insists on putting hardware dependencies, including >68000 programs in hex, in its LaserPrep. (Does anyone else feel a sense >of deja vu in this thread?) To have such built into TrueType (if it is) >would pose a big problem for everyone with non-Apple printers. Perhaps >that is exactly what Apple has in mind. > >Like I said before, I'm ordering Adobe's Mac PostScript printer driver >as soon as they release it. I suggest anyone with non-Apple printers >and Macintoshes do the same. >-- >Steve Dorner, U of Illinois Computing Services Office >Internet: s-dorner@uiuc.edu UUCP: uunet!uiucuxc!uiuc.edu!s-dorner Actually, I think that Mr. Snively is wrong on this one. One of the big features of the System 7 PostScript driver which was pushed real hard is that the postscript output is: a) Device independent. (They even are going so far as changing the icon so that it no longer resembles an Apple laser printer) b) Self-contained. (I.E. No LaserPrep) c) Can be sent to a file in a supported, consistent manner for downloading or fiddling. It is inconceivable that given the particular design requirements the PostScript driver people have set for themselves that they'd be downloading M68000 code to the printer. -- Mark Wilkins wilkins@jarthur.claremont.edu
woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) (09/06/90)
In article <262@heaven.woodside.ca.us>, glenn@heaven.woodside.ca.us (Glenn Reid) writes: > In article <1527@chinacat.Unicom.COM> woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) writes: > >That is why the string of comments is 6 characters long. That way you > >should be garanteed to get at least one match. I tried making the > >line 10 or 12 characters long, and it still failed. I also tried > >changing the (%%%) to something else like (***) ... > > Woody, you're using the "eq" operator. It has to match EXACTLY for "eq" I did not write the code, it apparently was produced via fontographer. But in either case, I believe that readstring fills the supplied string completely, with characters, and stops. This means that readstring will read in 3 character chunks. If you have 6 %'s in a row, it should find 3 of them. If you had less, it could miss some as pointed out, and if you had more you just would have an extra margin of saftey. Increasing the number did not solve the problem. > Go read the green book, page 201, and look at the "userexec" procedure. > There is code in there that flushes to a comment. Notice that it uses > the "readline" operator, as suggested by Ben Cranston. > > The bottom line is that the technique of using "readstring" and "eq" > can never be made to work 100% of the time. > > > >What I cannot understand, is why this works on a PS-810, and Apple > >Laserwriters, but fails on the NEC 890. (and only the nec 890 to my > >knowlege). I know that things worked flawlessly on my PS-810, but > >failed on the nec 890. > > I cannot understand it either, but it's more likely to be the way you > transmit the file to the printer than it is the printer itself. If you > make the code better, along the lines of the various suggestions, it will > not fail on the LC-890, or I'll eat a toner cartridge. The fonts were supplied on MS-DOS disks, along with screen fonts for windows. The platform was an AT clone, connected to the NEC via a Centronics paralell port. My platform consists of an AT clone connected to a PS-810 via a Centronics port. Both copy and print techiniques were tried, as well as telling Windows to treat the fonts as non permanent fonts to be downloaded on the fly. In all 3 cases on both platforms, the result was the same. Just for grins, I guess I'll drive over there and try it again. My original suspicion was that someone figured that it was wasteful of interpreter time to have to wade through comments, so decided to filter them out instantly. Cheers Woody
glenn@heaven.woodside.ca.us (Glenn Reid) (09/06/90)
In article <262@heaven.woodside.ca.us>, I write, among other nonsense: > Go read the green book, page 201, and look at the "userexec" procedure. > There is code in there that flushes to a comment. Notice that it uses > the "readline" operator, as suggested by Ben Cranston. > > The bottom line is that the technique of using "readstring" and "eq" > can never be made to work 100% of the time. As several of you have pointed out through Email and as Woody mentions, I'm all wet; the code as posted would read three percent signs, or so it would seem, if there were six of them somewhere along the way. In article <262@heaven.woodside.ca.us>, I continue: > I cannot understand it either, but it's more likely to be the way you > transmit the file to the printer than it is the printer itself. If you > make the code better, along the lines of the various suggestions, it will > not fail on the LC-890, or I'll eat a toner cartridge. I'm not ready to eat the toner cartridge yet. Have you ever had the experience of starting with a conclusion that you know to be true, and then working backwards to a plausible explanation, rather than trying to actually analyze the problem at hand? Well, that's what I was doing. And I still think the the conclusion that I know to be true is that the NEC LC-890 is not throwing away comments in the serial driver. A lot of other things might be happening, but I won't believe that's one of them unless Ed Taft tells me so. But, rather than shut up, which is probably what I should do, I'll venture some more half-baked thoughts :-) >The fonts were supplied on MS-DOS disks, along with screen fonts for >windows. The platform was an AT clone, connected to the NEC via a Centronics >paralell port. My platform consists of an AT clone connected to a PS-810 >via a Centronics port. Both copy and print techiniques were tried, as well >as telling Windows to treat the fonts as non permanent fonts to be downloaded >on the fly. In all 3 cases on both platforms, the result was the same. >Just for grins, I guess I'll drive over there and try it again. Perhaps it is related to the parallel port somehow? I've never driven a PostScript printer through a parallel port. I suppose it is possible that the parallel driver does different things than the serial driver does, and one of them might be to throw away comments. That might also explain why the test program I posted a while back, which would indicate that the comments *were* getting through, might not have worked for Woody. Woody, howzabout testing it on the serial port while you're there (if you're still there, after having driven over to try it again :-) It's also possible that the program is just getting a PostScript error somewhere and is flushing the rest of the file; I assume that Woody would catch this, though. >My original suspicion was that someone figured that it was wasteful of >interpreter time to have to wade through comments, so decided to filter >them out instantly. I'd stake that toner cartridge that this isn't happening on AppleTalk or the serial port, but I have no idea about Centronics, other than to think that it should be pretty much the same. I know that test program I wrote a while ago is lost, so here's another one that should print the string "%%Comments are getting through" if they in fact are getting through, and will print nothing if not: ---------------------------- cut here --------------------- %! /buff 30 string def currentfile buff readstring %%Comments are getting through 100 100 moveto /Helvetica findfont 18 scalefont setfont buff show showpage ---------------------------- and here --------------------- Several of you helpful folks out there reported that the other program I posted a while back worked on your NEC LC-890 printers. Just so we squash this once and for all, how 'bout if people only report if it DOESN'T work on their printer. And if it doesn't, the more you can report about your setup, the better. Version of printer, connection to host, kind of host, whatever. Now I've become curious about this whole issue. If it's a real problem, it ought to pop up all over the place, not just on Woody's system, unless the intersection between people who read comp.lang.postscript and those driving PS printers over Centronics ports from PC clones is a very small set, which I would be happy to believe. Glenn P.S. If it ends up that I have to eat a toner cartridge, please send me only new toner cartridges that will fit in the LaserWriter II NTX :-) -- Glenn Reid RightBrain Software glenn@heaven.woodside.ca.us PostScript/NeXT developers ..{adobe,next}!heaven!glenn 415-851-1785
shiva@well.sf.ca.us (Kenneth Porter) (09/06/90)
Bjorn Larsen writes: > I run a printer spooler that accepts PostScript code from > PCs, VAX/VMS, Unix, NOS/VE and Macs. > > It spools output to a big variety of PostScript printers; most > with Adobe RIPs: Apple LaserWriter, LN03R, LPS-40, LPS-20, > Agfa Matrix SlideWriter, QMS 100 ColorScript, TI MicroLaser, > Linotronic 100/RIP3, and others. Is this spooler commercial, freeware, local, or what? Bjorne, you mention that you do ProcSet substitution. This begins to sound like the sexy "Document Managers" mentioned in the Structuring Comments document and Glenn's Green Book. Just what all can it do? Does it parse and use PPD's? Does it handle document font requests? What platforms does it run on? And while I'm at it, what other spoolers are available for various platforms? I use Pipeline's devps stuff (the same people who produce the PostScript Language Journal), heavily customized to fit my needs. It doesn't do document management, but I did add a filter to auto-sense various kinds of PostScript files (%!, MS Word, Word Perfect 4.2) and translate those that don't match using a text-to-PostScript utility provided by Pipeline. If the "-l" switch was given to lpr, my auto-sense routine complements its decision, to allow printing of non-standard PostScript files and to allow me to get listings of a conforming PostScript source. I also added back-channel capture to a Sunview window, so I could see my error messages in realtime. The devps product is primarily for converting dvitroff to PostScript, which I don't use since dvitroff doesn't come with Suns. The spooler is a small part of the product, and essentially consists of filters to put in printcap. These include one to convert CAT files to dvi (I couldn't get this part to work; probably something weird about Sun 386i COFF-format font files, I use thack instead), two to convert text to PostScript, and a script to read the arguments passed from lpd to dispatch to the appropriate filter. The latter is what goes in printcap, aliased to different names (ps.if, ps.tf, ps.nf). The rest of the package is a variety of handy utilities for such things as printing font samples, getting AFM files back from the printer, and overlaying ghosted text across a page. The original package runs about $300 for source. It's not for users who don't feel comfortable with hacking around with printcap, serial ports, and shell scripts. I think Legatto sells a Sun binary all integrated and ready for use for roughly the same amount. What do you get with TranScript for $1800 (source from Adobe, or binary from Sun)? At the time I was researching it, it didn't sound like enough to warrant a 6x price difference.
shiva@well.sf.ca.us (Kenneth Porter) (09/06/90)
Woody posted code containing the following fragment as an example of something that would hang an NEC LC890, with the request that fellow LC890 owners would test it. { currentfile( )readstring { (%%%)eq %look for separator { exit }if } { pop %hangs, looking forever }ifelse }loop % % ...bunch of PostScript code to skip over... % %%%%%% Sorry, Woody, but your LC890 file works just fine on my LC890. It finds the (%%%) and exits. I put the test in foo.ps and did "cat foo.ps foo.ps | lpr" and got a standard EOF indication back. I even put prints in the exit and pop paths of the loop to verify which was taken and the comment detection path *was* taken. I also cat-ed two copies of your complete font example and got the same result. Just so we agree on versions, here's a dump of some stats from the printer: Product: Silentwriter Version: 47.0 Revision: 1 Printer Name: Silentwriter Pagecount: 24432 Do Start Page: true Margins: -16 25 Default Paper Tray: 2 Default Timeouts: 0 60 30 Usertime: 581751454 VM Total: 1318576 VM Used: 544622 VM Available: 773954 Save Level: 2 Perhaps there's something odd about your host setup. What do you use to send files? If a unix spooler, what filters are involved? Could a filter in the host be stripping your comments or adding unexpected newlines? Incidentally, I noted that the code fragment was saving the packing flag and packing the font. Users of Presentation Manager should be aware that the PM PostScript prolog is ignorant of the packing flag and writes a dictionary into a procedure body to get local variables in a private dictionary: /BuildChar { 0 begin ... end } def BuildChar load 0 3 dict put This means that you can't set packing on by default when using PM or the above trick will cause an invalidaccess as the put stores into a (packed) readonly object.
kibo@pawl.rpi.edu (James 'Kibo' Parry) (09/07/90)
In article <20146@well.sf.ca.us> shiva@well.sf.ca.us (Kenneth Porter) writes: >Woody posted code containing the following fragment as an >example of something that would hang an NEC LC890, with the >request that fellow LC890 owners would test it. > >{ > currentfile( )readstring > { > (%%%)eq %look for separator > { > exit > }if > } > { > pop %hangs, looking forever > }ifelse >}loop >% >% ...bunch of PostScript code to skip over... >% >%%%%%% > >Sorry, Woody, but your LC890 file works just fine on my LC890. >It finds the (%%%) and exits. It also seems to work for others--the DTP program "PageStream" uses it when downloading fonts (so that the fonts are skipped if they're already known). (PageStream's prep file looks for "%%%%%" and not "%%%", but that doesn't matter...) As far as I know, PageStream works on those printers. -- james "kibo" parry, 138 birch lane, scotia, ny 12302 <-- close to schenectady. kibo@pawl.rpi.edu _________________________________________________ kibo%pawl.rpi.edu@rpi.edu / Kibology / Anything I say is my opinion, userfe0n@rpitsmts.bitnet / is better! / and is the opposite of Xibo's.
woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) (09/07/90)
In article <267@heaven.woodside.ca.us>, glenn@heaven.woodside.ca.us (Glenn Reid) writes: > > I'm not ready to eat the toner cartridge yet. Have you ever had the > other things might be happening, but I won't believe that's one of them > unless Ed Taft tells me so. > > But, rather than shut up, which is probably what I should do, I'll venture > some more half-baked thoughts :-) Half baked or not, that's what this forum is all about. > > >The fonts were supplied on MS-DOS disks, along with screen fonts for > > Perhaps it is related to the parallel port somehow? I've never driven a > PostScript printer through a parallel port. I suppose it is possible that > the parallel driver does different things than the serial driver does, and That might be the case. I'll test it. Either Monday or Tuesday, depending on my schedule etc etc, I'll drive over and test it. I'll test Glenns'code, as well as make the change to one of the fonts to use the anchor search technique. I'll also test the following (%%%) %%%%%%%%%%%%% (***) %*************** (jjj) /jjjjjjjj 0 def as search strings. I don't know whether I can test it with serial or not. I think the machine only has one serial port and it is dedicated to the mouse. Of all the PS printers that I have sold that have centronics interfaces, to a printer they are used with the centronics interface. It is *MUCH* faster than serial mode, and does not have the handshaking problems. It might be interesting to tabluate percentages of useage of the various interfaces. If anyone has any other ideas for testing this, let me know.... > > It's also possible that the program is just getting a PostScript error > somewhere and is flushing the rest of the file; I assume that Woody would It isnot flushing the rest of the file. The NEC has a front panel and the thing just hangs in PROCESSING rather than dropping back to IDLE which is what should happen if it just flushed the job. > > > I'd stake that toner cartridge that this isn't happening on AppleTalk or > > > Now I've become curious about this whole issue. If it's a real > problem, it ought to pop up all over the place, not just on Woody's > system, unless the intersection between people who read > comp.lang.postscript and those driving PS printers over Centronics > ports from PC clones is a very small set, which I would be happy to > believe. It happens on a client of mine. She runs a KWIK COPY franchise, and purchased an AT and a NEC from someone else rather than me. She thought the other guy walked on air, that is until he sold her the system and then disappeared. Then guess who she called on??? That was always one of my pet peeves in the sales business. :-) >
woody@chinacat.Unicom.COM (Woody Baker @ Eagle Signal) (09/07/90)
In article <20146@well.sf.ca.us>, shiva@well.sf.ca.us (Kenneth Porter) writes: > > > Woody posted code containing the following fragment as an > example of something that would hang an NEC LC890, with the > request that fellow LC890 owners would test it. > > > Sorry, Woody, but your LC890 file works just fine on my LC890. > It finds the (%%%) and exits. I put the test in foo.ps and did O.k. Thanks a bunch. I'll report further when I go back over and test it. I'll try putting the prints in the exit and pop paths as well. It is starting to sound like either a brain-damaged NEC, or an interface problem. I guess I'll drag my PS810 over there as well, to see if it is an interface problem. :-) Cheers Woody >
taft@adobe.com (Ed Taft) (09/07/90)
Since Glenn mentioned my name, I suppose I'd better contribute what I can to this discussion. I certainly don't want Glenn to eat a toner cartridge; it might interfere with his ability to participate in this newsgroup. Comments are not stripped out by the serial driver, centronics driver, or any other driver in a PostScript printer. Comments are recognized as such only by the PostScript language scanner, which is invoked when you execute the file or read it using the token operator, but not when you read it using data transfer operators such as readstring. My guess is that either the connection is flakey or the comments are being stripped by software further upstream. But that's just a guess. By the way, the subject of this thread doesn't have much to do with its content, does it? Ed Taft taft@adobe.com ...decwrl!adobe!taft
chewy@apple.com (Paul Snively) (09/08/90)
In article <8257@jarthur.Claremont.EDU> wilkins@jarthur.Claremont.EDU (Mark Wilkins) writes: > Actually, I think that Mr. Snively is wrong on this one. One of the big > features of the System 7 PostScript driver which was pushed real hard is > that the postscript output is: > > a) Device independent. (They even are going so far as changing the icon > so that it no longer resembles an Apple laser printer) > > b) Self-contained. (I.E. No LaserPrep) > > c) Can be sent to a file in a supported, consistent manner for downloading > or fiddling. > > It is inconceivable that given the particular design requirements the > PostScript driver people have set for themselves that they'd be downloading > M68000 code to the printer. My comments weren't meant to apply to the driver sending PostScript to any particular PostScript device; they were meant to apply to the case of rendering TrueType on a device that doesn't have TrueType in ROM. Again, what seems to be the case is that if it has an '0x0, machine code gets downloaded, otherwise PostScript gets downloaded (I think). The point is that everything just works, which is what everyone keeps asking for. __________________________________________________________________________ Paul Snively Macintosh Developer Technical Support Apple Computer, Inc. chewy@apple.com Just because I work for Apple Computer, Inc. doesn't mean that I believe what they believe, or vice-versa. __________________________________________________________________________
hammen@ddsw1.MCS.COM (Robert Hammen) (09/08/90)
If you print TrueType fonts to a PostScript printer with System 7, you see the message "Downloading font scaling code" flash by in the printer status window. Previous discussions on the net have centered on whether or not this code is being sent down as 68000-based machine code or not. Two interesting results I found when attempting to find out just what was going on. 1) I printed a test to a Qume CrystalPrint Publisher II. The printer uses a PostScript clone, and uses a Weitek RISC chip for its controller. It took 45 minutes to an hour for it to generate a waterfall that an NTX printed in about five minutes. 2) I printed a test to an Abaton LaserScript. This printer uses the Bauer PostScript clone that is the basis of Microsoft's TrueImage PDL. The page would not print because the language currently doesn't support the eexec operator. 3) I printed a test to a NewGen Turbo/PS 480. This RIPS PS clone uses an Intel RISC chip for a processor. The page printed in about 10 minutes. The next two tests I will run will be on a software-based PS interpreter (the Hyphen clone RIP) and a Linotronic 300/RIP 4. ///////////////////////////////////////////////////////////////////////////// / Robert Hammen | Macintosh enthusiast & publishing guru, looking for a job / / hammen@ddsw1.mcs.com | 70701.2104@compuserve.com | GEnie: R.HAMMEN / /////////////////////////////////////////////////////////////////////////////