Jeff, Thank you for your very informative (and cool-headed) explanation of linux printing. If I had more time (I'm a little pressed right now, unfortunately) I'd read the CUPS and Printing HOW-TOs cover to cover and hopefully extract what you just distilled for me. I suppose it's partly the Windows indoctrination that has occurred to me over the years and partly a frustration at what appeared to be a common problem among newsgroups but without a well-known solution. Since I have three types of systems trying to access this printer (Windows, Linux, Mac), I will set up two queues: one postscript, one raw, and see if I can get all the systems to talk to the printer successfully (so far I have the Windows machines happily spitting binary data at the printer, and linux happily using the normal postscript drivers on a separate queue -- I'm not sure why the Mac has decided to stop printing. Should I be using IPP, Windows Printing, or LPD as the protocol for the Mac?) Thank you again for your explanation. Brion ----- Original Message ----- From: "Jeff Vian" <jvian10@xxxxxxxxxxx> To: "For users of Fedora Core releases" <fedora-list@xxxxxxxxxx> Sent: Tuesday, May 04, 2004 7:59 PM Subject: Re: Tackling a shared USB printer (linux -> WXP) > > > Brion Swanson wrote: > > >It seems to me that the printer is hooked up to a single machine - i.e. > >presumably a machine that only runs one operating system at a time - or it's > >hooked up to a hardware print server. In either case, the interface through > >which the printer receives its data should be of one type. In other words, > >when I - as the software printing driver - talk to the physical printer, I > >use only one language to talk to that printer -- the most appropriate common > >language. All other devices that want to talk through the printer must go > >through the printer driver -- a single printer driver. > > > > > The concept here is that window refuses to queue a file before it is > processed thru the driver for that printer. If spooled raw it will not > print properly, EVER. > > >If I set up a printer in Windows and shared it, I don't believe I'd need to > >set up multiple versions of the same printer, one for each different OS that > >uses it. Windows would configure one printer, with one driver (the Canon > >driver in my case) and then other computers would talk to Windows to print, > >not to the printer directly. In which case, I only need the driver that > >works with windows to be loaded and possibly some translation software to > >convert, say, a stream of bytes into something the printer will understand. > > > > > This is wrong in concept but right in queueing. > > If you have a printer on an XP machine and are sharing it with a 98 > machine they both have their own version of the driver for that printer > (for many printers) and each sends the file preformatted to the print queue. > > The biggest difference is when the file gets queued. By default a file > to be printed on linux is spooled. Then when it is despooled for > printing it is handed off to the printer driver for the formatting that > is printer specific and streamed to the printer. This means the queue > is set up specifically for each printer because the queue config knows > what driver to hand the job to for formatting And if I want, I can use > different drivers for the same printer -- postscript, non postscript, > PCL, or otherwise depending on the abilities of the printer and my > wants. I just set up a different print queue for each type handling I want. > > On Windows, the file is formatted (and binary) before it is spooled to > the queue (raw on Windows as well as on Linux). > > With these differences it is important that the linux queue knows what > type file it is receiving. Preformatted or Raw. > > >I agree it's logical to have one queue for each device that needs a > >different driver, but managing 'n' number of queues for a single printer > >because I have 'n' number of different OSes, each of which talk to the > >printer in a different language is, if not difficult at least annoying. > > > > > Think of the linux print queue as doing the job the windows print > drivers do before spooling. > The file spooled is raw, usually much smaller than the formatted file, > (and often saves a lot of space) as well as making a single point in > time where the formatting occurs (exactly when needed). After the > driver manages the formatting the file is now binary and streamed to > the printer. > > >I want to set up the printer locally in linux, then tell the rest of the > >world, "Hey! I have a printer you can use if you want to talk to it through > >me!" and have that be it. It doesn't seem like such a difficult task. > >Other operating systems do it - why not this one? > > > > > If you change the way linux spools the print files so they are > preformatted before spooling then ALL print sources would be able to use > a raw print queue. In the present setup, the printer drivers do not even > touch the file until it is despooled for printing. > > The raw print queue is functionally identical to the print queue in > Windows. It receives a (binary) file to be spooled and sends it to the > printer without doing any other processing. > > >Sorry this turned into a little rant, but it just bugs me that this > >"thousand-queue" solution is the best thing linux has to offer when sharing > >a USB printer with other operating systems. > > > >Brion > > > > > This is not difficult. When sharing with linux machines you have a > choice on the sending machine of preformatting and sending to a raw > queue or sending it raw an using a printer specific queue on the print > server. The same choices are (theoretically) available whether you are > providing services for Linux workstations or Windows (except Windows > does NOT allow the choice. It MUST be sent to a raw print queue). > > OTOH, the concept of the print queue providing the driver formatting on > *nix goes a little deeper. It not only saves space in a print queue, > but it also meens the workstations being served do NOT have to even > install a printer driver and do not care what printer their job is sent > to. (I know, this is a carry-over from when workstations were dumb and > drive space was at a premium; But the idea is still sound) > > >----- Original Message ----- > >From: "Jeff Vian" <jvian10@xxxxxxxxxxx> > > > > > >>Why does it seem wrong.?? > >> > >>The os being used to print (windows), preformats the printer output so > >>it is correctly printed. Thus it needs to be streamed to the printer > >>via a "RAW" queue that gets no further processing. > >> > >>Linux also needs to format its output for the printer, so it cannot use > >>the raw queue but needs a different path that does process the output > >>and prepares it for the printer. > >> > >>This seems very logical to me. > >> > >> > >> > BOTTOM LINE: flexibility. Windows is not, Linux is almost limitless. > Tailor it as you see fit. > A few seconds spent in planning and configuration provides a lot of > later flexibility. > > > If you do not like the flexibility options of windows why not get a > network print server appliance and remove the printing from Linux > totally? Then every station would have to send files to the printer > exactly the same - preformatted and all. > > > -- > fedora-list mailing list > fedora-list@xxxxxxxxxx > To unsubscribe: http://www.redhat.com/mailman/listinfo/fedora-list > >