[comp.sys.mac.misc] Windows & Mac: printer architecture

minich@d.cs.okstate.edu (Robert Minich) (07/08/90)

by aaron@jessica.stanford.edu (Aaron Wallace):
|daveo@Apple.COM (David M. O'Rourke) writes:
|>  A tractor feed being installed/not-installed is unimportant.  
| 
| Yes it is--the driver may have to pause after each page to let the user put
| in a new sheet.  With a tractor this isn't necessary.  True, some printers
| have a page-pause feature, but for thise that don't...

  And noone bothered to tell you, but when i go to print (imagewriter or
laserwriter, others I don't know about) there is an option for manual
feed or tractor/paper cassette. The laserwrite will pause for another
piece of paper when it needs to and the image writer will also. (You can
just feed paper to the laserwriter anyways, but it won't wait for you.)
 
|>Most of
|>of the print driver's are written for a Specific printer, or query the
|>printer as to it's font list.  But you are thinking DOS only.  Most of
|>the ink jet printers for the mac, including the Deskwriter, store the font's
|>on the Macintosh and not the printer.  In addition the Macintosh rarely
|>sends just the character to the printer.  Rather it typically sends a bitmap
|>to the printer that happens to look like text.  So the only relivant info
|>for a particular printer type is it's maximum resolution, dpi.  And then
|>the Macintosh creates a bit map at the resolution and sends the graphics to
|>the printer.
| 
| I thought the Mac sent PostScript to the LaserWriters, using a bitmap only
| if there wasn't a matching font on the printer...  I know, System 7 will
| do it differently, and so will Windows 3.1 and OS/2 2.0...

  Somone else explained printing in great detail in another article. Ths
gist is that there is the wonder known as the 'QuickDraw bottleneck'
interface. It's just a list of pointers to routines to do basic things
like DrawRect(), LineTo(), etc. into which you can substitute your own
routines. The printer driver sets up a port for the program to draw
into. For a laserwriter, it traps the drawing routines and magically
processes them into postscript, where possible. For something like an
imagewriter or deskwriter, the driver will usually just let the Mac do
the drawing and dump the bitmap to the printer. Originally, System 7 was
supposed to completely revamp printer drivers and provide a wonderful
new setup, which to me sounds similar to what Windows is doing.
(Hindisight _is_ 20/20... esp. when someone else makes the mistake.)
Now, that's one of the things for "later". oh well.

| Still, I'm not convinced that configuration can always be handled
| automatically, or should be.  If a font cartridge is in the printer it should
| be used.  And if there is no way for the printer to communicate its contents,
| configuration is necessary.

  I guess we need to consider what goes into a printer. Limited
intelligence isn't a big problem. ($$$ wise) I presume the only reason
why PC printers aren't so talkative is that the parallel ports don't
offer any reason to. I think that the user should only have to consider
choices, not answer questions about facts which the computer can likely
determine with greater ease and accuracy. (ie, the user shouldn't be
able to answer incorrectly.)
  What happens if you tell Windows you have font X in the printer, but
you don't?

-- 
| _    /| | Robert Minich             |Q: Why is the food so lousy, and 
| \'o.O'  | Oklahoma State University |the service so bad? Time traveler:
| =(___)= | minich@d.cs.okstate.edu   |A:The waiters know in advance what 
|    U    | - Bill sez "Ackphtth"     |kind of tip they'll be getting.

strobl@gmdzi.UUCP (Wolfgang Strobl) (07/09/90)

minich@d.cs.okstate.edu (Robert Minich) writes:

>  I guess we need to consider what goes into a printer. Limited
>intelligence isn't a big problem. ($$$ wise) I presume the only reason
>why PC printers aren't so talkative is that the parallel ports don't
>offer any reason to. I think that the user should only have to consider
>choices, not answer questions about facts which the computer can likely
>determine with greater ease and accuracy. (ie, the user shouldn't be
>able to answer incorrectly.)

I agree. But there is no sharp border between choices and answers to
questions about facts. Of course the printer may be able to detect
the size of the paper it uses. Then it's a fact, not a choice. But
what if the user prints to a file in order to create the output 
somewhere else? I this case he has to choose the paper size he will
put into the printer. Then it *is* a choice.

>  What happens if you tell Windows you have font X in the printer, but
>you don't?

It depends. HP PCL printers (i.e. LaserJet, DeskJet) and clones have
their own font matching algorithm, which selects the most similar 
available font by relaxing the specifications in a certain order
(font weight is dropped first, size last, if I remember correctly). 
This gives the best thing one can produce from the users
specifications, so there is not much lost. 

If the printer is unable to communicate anything back and dies 
from a wrong font specification, what can Windows do about that?
It can try to get as much information as possible from the user.
So it does.

Wolfgang Strobl
#include <std.disclaimer.hpp>