home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / vmsnet / misc / 1100 < prev    next >
Encoding:
Internet Message Format  |  1993-01-06  |  10.7 KB

  1. Xref: sparky vmsnet.misc:1100 vmsnet.networks.desktop.pathworks:3937 comp.os.vms:20437
  2. Path: sparky!uunet!cis.ohio-state.edu!zaphod.mps.ohio-state.edu!moe.ksu.ksu.edu!mccall!mccall!tp
  3. Newsgroups: vmsnet.misc,vmsnet.networks.desktop.pathworks,comp.os.vms
  4. Subject: re: Re: How to use a non-DEC postscript printer??
  5. Message-ID: <1993Jan6.073552@mccall.com>
  6. From: tp@mccall.com (Terry Poot)
  7. Date: Wed,  6 Jan 1993 07:35:52 CST
  8. Reply-To: tp@mccall.com (Terry Poot)
  9. References: <9301060244.AA01911@uu3.psi.com>
  10. Organization: The McCall Pattern Co., Manhattan, KS, USA
  11. Nntp-Posting-Host: mis1
  12. Nntp-Posting-User: tp
  13. Lines: 188
  14.  
  15.  
  16. [I wrote the indented part that is single quoted, Jerry wrote the non-indented
  17. part that is single quoted. Jerry's reply only went to comp.os.vms because he's
  18. on the info-vax mailing list, so I'm quoting his entire article (with my
  19. comments inserted) for the benefit of the people in the other groups this was
  20. posted to.  --tp ]
  21.  
  22. In article <9301060244.AA01911@uu3.psi.com>, leichter@lrw.com (Jerry Leichter)
  23. writes:
  24. >
  25. >
  26. >    In article <31DEC199209514502@author.gsfc.nasa.gov>,
  27. >    rkoehler@author.gsfc.nasa.gov (Bob Koehler) writes:
  28. >    >The CPS software inquires from the printer as to what kind of printer
  29. >    >it is.  If its not recognized, it assumes DEC LN03R (Scriptprinter), 
  30. >    >and utilizes vendor and model specific knowledge in communicating to
  31. >    >the "LN03R". Of course, if its not an LN03R, that's likely not to
  32. >    >work.  
  33. >
  34. >    I always wondered how DEC managed to not support a standard Postscript
  35. >    printer.  Thanks for the info. If they weren't trying to lock you into
  36. >    their own printers, of course, they'd assume a standard Postscript
  37. >    printer if they didn't recognize what they got back. Assuming an LN03R
  38. >    is ludicrous, since that is one they WOULD recognize! I wonder what
  39. >    marketting guru thought of that little ploy.
  40. >
  41. >And just what do you think a standard Postscript printer IS?  
  42.  
  43. OK, I should have said "generic" instead of standard".
  44.  
  45. >Postscript is a
  46. >standard with some rather large holes in it.  In particular, such things as
  47. >page types and methods of specifying them, control over multiple paper feeds,
  48. >setting of persistent parameters and what those persistent parameters are,
  49.  
  50. There is no reason the controlling software has to know these things. It should
  51. offer base level functionality for a generic printer. In such a case, it would
  52. believe the queue characteristics as to the page size for laying out ascii text,
  53. and would offer no control of paper trays or fancy options such as duplex,
  54. stapling, etc., except by having a mechanism to allow embedded postscript to be
  55. passed through to let the user do it. It should leave persistent parameters
  56. alone completely. Scriptserver manages to do these things rather well, so I
  57. can't believe DEC couldn't. They support a large list of printers, and I believe
  58. most of them on the list are simply those that run standard Adobe interpreters.
  59. You build a test suite, run it on the printer, and if it works, it's supported.
  60.  
  61. Or (he says, in a flash of inspiration :-]) one could look these up in a
  62. Postscript Printer Description (PPD) file, which defines how to do all these
  63. things you are worried about and thus provides full functionality! It even gives
  64. you the PS code to use to query the printer to find out what you need to know,
  65. and the code to activate the various features. Thus, DEC could support any
  66. printer with 2 caveats: the user must provide a PPD file if it isn't included in
  67. the set DEC would ship, and only capabilities described in the PPD file are
  68. supported. Furthermore, that support wouldn't have to be hard-coded and system
  69. specific. I guess a further caveat would be that it support a standard serial
  70. (or other specific) interface. But again, ScriptServer manages to do quite well
  71. without PPD files (though it doesn't offer some features it could if it did use
  72. them).
  73.  
  74. >the format and meaning of status messages returned by the printer, and so on,
  75.  
  76. Assume the format returned by Adobe interpreters. If they've changed the format
  77. over time, support them all. For that matter, unless it is doing a query, simply
  78. return anything coming back from the printer as an error. I think the only one
  79. ScriptServer actually understands is the flushing to end of job error, and you
  80. could get away without that one. If the printer sends a different message, you
  81. just end up sending the rest of the file needlessly. Of course, you could allow
  82. the system manager to define the flush message text. Or, once again, you could
  83. use PPD files, which do define the error messages.
  84.  
  85. >are NOT standardized - or at least they were not standardized in Version 1 of
  86. >Postscript, for which all of this stuff was built.  
  87.  
  88. They are not standard, but they are common. Adobe's approach to printer support
  89. is to make common features the same on all printers. Which features are
  90. available may vary from printer to printer, but if the feature is available, it
  91. is generally accessed in the same way. PPD files are standardized, and Adobe
  92. maintains an archive of them for lots of printers. They are available on the net
  93. via a mail server, and I think Adobe or the developer's association will make
  94. the available on floppy as well.
  95.  
  96. >(Take a look at the Post-
  97. >script Language Reference - all of this stuff is in an appendix describing the
  98. >Apple LaserWriter, and the book is quite explicit in saying that what that
  99. >appendix describes applies ONLY to the LaserWriter.
  100.  
  101. But most printers with similar features are compatible. I seem to recall it
  102. specifically mentions the few things that are only applicable to the LW, but I'm
  103. not certain.
  104.  
  105. >From the point of view of an "end user", who is only concerned with setting
  106. >text and drawing pictures, Postscript is reasonably portable.  (Well, even
  107. >that's too strong - in my experience, perhaps 30% of the Postscript files I
  108. >pull of the net, which the providers insist print just fine on their printers,
  109. >cannot be printed on a HP IIISi with Postscript, driven by Adobe's latest and
  110. >greatest software for Suns, that I have access to.)  
  111.  
  112. And usually, this has one of 3 causes: 1) the file is defined for a page size
  113. (e.g. a european size) that your printer doesn't support, 2) the file needs a
  114. font you don't have, or 3) the file is produced by some PC or MAC application
  115. that assumes a standard prologue file, but doesn't put it in the postscript file
  116. because it assumes it has been permanently downloaded to the printer, or because
  117. it assumes that the application itself will be used to print the file, and it
  118. will send the prologue to the printer at that time. 
  119.  
  120. #1 is a problem that I don't know a lot about, although I've been able from time
  121. to time to simply edit the postscript and change the page size to get it to work
  122. (and if the margins didn't make it fit, put in a scale command to get the image
  123. to the right size). #2 is pretty much make or break for a carefully laid out
  124. document, since each font has different metrics. If you don't have the font,
  125. doing an adequate substitution would be difficult. #3 is a user error. The user
  126. has produced a platform specific file. If he's going to release it to the net,
  127. he should ensure all required prolog files are in the file. That includes
  128. apple's laserprep, or whatever. (ScriptServer comes with a small number of these
  129. standard prologs, and you can use these as form queue setup files so you can
  130. define a queue to print things that need laserprep, or whatever.)
  131.  
  132. >From the "system" point
  133. >of view, Postscript is pretty non-portable; every printer is just a bit
  134. >different.
  135.  
  136. Not for basic functionality. For accessing things like papertrays, etc, sure.
  137. Just leave that to the user to do in his Postscript or by embedding PS in his
  138. ascii file. Why is it considered "bad" to support a printer with less than total
  139. functionality?
  140.  
  141. >Unfortunately, there is no way of determining if a new printer you've never
  142. >heard of provides the same interface as you've already written code to
  143. >support.  Just what particular interface do you assume?  
  144.  
  145. Bi-directional serial (RS-232).
  146.  
  147. >What do you do when
  148. >random stuff you don't understand starts coming back from the printer?  
  149.  
  150. Print it for the user.
  151.  
  152. >Just
  153. >what is it you are willing to accept a legal obligation to do with a printer
  154. >you've never heard of?  
  155.  
  156. Most DEC software disclaims any legal obligation to do anything. Simply describe
  157. the generic printer and say any printer matching those characteristics is
  158. supported. The rest aren't. 
  159.  
  160. >Why would you want to accept ANY legal obligation if
  161. >you are not in a position to test your software first?
  162.  
  163. So test them. Write a generic printer support module, build a test suite, and
  164. run 'em through. I believe ScriptServer supports over 3 dozen printers.
  165.  
  166. >    ...I've always thought it was stupid how DEC will go to great lengths
  167. >    not to support something not on their list, when letting it work would
  168. >    be easier (modem support for DSNlink springs immediately to mind).
  169. >    Account control is the only possible motivation for this.
  170. >
  171. >That certainly plays some role.  Supportability in the field is another.
  172. >DEC's code has bugs just like everyone else's, but DEC has always been extra
  173. >careful about delineating and documenting what it pledges will work, and what
  174. >it considers unsupported.  Before making something "official", DEC wants to
  175. >test it.
  176.  
  177. Fine. But they go out of their way to ensure that something that is not
  178. officially supported will not work. ScriptServer will support any reasonable PS
  179. printer, not just those on a list. DEC ensures that it will not support any
  180. printer but those on its list. Similarly, most modem communications software
  181. will support any modem with an AT command interface, whereas DEC ensures that
  182. DSNlink only works with a specific one. This is product lock-in, pure and
  183. simple.
  184.  
  185. >I'm not going to tell you that DEC is all sweetness and light, but I can speak
  186. >from experience, a number of years back, in DEC's terminals group.  We were
  187. >VERY careful to define just what it was we expected hardware and software to
  188. >do.  In fact, when there were proposals to emulate various 3rd-party terminals
  189. >on DEC terminals, something the marketing people at one point tried very hard
  190. >to get, one of the strong TECHNICAL objections was that no complete spec of
  191. >what those 3rd-party terminals did existed.  How could we determine if we'd
  192. >built a correct emulation?
  193.  
  194. The PPD file for a printer, plus the PPD spec, provides a complete spec for the
  195. behavior of any printer for which a PPD file exists. Further more, the PPD file
  196. is machine parseable. Thus your analogy doesn't hold. Complete specs exist for
  197. most Postscript printers. But aside from that, most of them are very similar in
  198. the most important ways anyway.
  199. --
  200. Terry Poot <tp@mccall.com>                   The McCall Pattern Company
  201. (uucp: ...!rutgers!depot!mccall!tp)          615 McCall Road
  202. (800)255-2762, in KS (913)776-4041           Manhattan, KS 66502, USA
  203.