[cups.general] How do I publish a printer

Helge Blischke h.blischke at acm.org
Tue Jan 18 07:14:05 PST 2011


Johannes Meixner wrote:

> 
> Hello,
> 
> On Jan 18 04:07 Helge Blischke wrote (shortened):
>> Johannes Meixner wrote:
>>>
>>> ... I don't know about Apple OS 9.2.
>>>
>>> [...]
>>>
>>> Additionally you may have a look at
>>> http://en.opensuse.org/SDB:Printing_from_Windows_to_Linux
>>> ... how to print documents in proprietary formats
>>> (e.g. from whatever proprietary office applications)
>>> from proprietary operating systems to a CUPS server.
> ...
>> This said, it has been a feature of Netatalk from the beginning
>> to advertize shared printers and volumes (configured as
>> shared objects via the netatalk administration/configuration)
>> over the AppleTalk network.
> ...
>> As of version 2.0, CUPS is also supported. Simply using cupsautoadd
>> as first papd.conf entry will share all CUPS printers automagically
>> using the PPD files configured in CUPS.
> 
> Helge,
> could you provide some more details about what "using the PPD files"
> actually means?
> 
> http://netatalk.sourceforge.net/2.1/htmldocs/configuration.html#printing
> reads
> -------------------------------------------------------------------------
> Bidirectional means that printing source (usually a Macintosh computer)
> and destination (a printer or spooler implementation) communicate
> about both destination's capabilities via feature queries (compare
> with Adobe TechNote 5133) and device status. This allows the LaserWriter
> driver on the Macintosh to generate appropriate device specific
> PostScript code (color or b/w, only embedding needed fonts, and so on)
> on the one hand and notifications about the printing process or
> problems (paper jam for example) on the other.
> -------------------------------------------------------------------------
> 
> At first glance it seems the Adobe TechNote 5133 has only
> "Printing to PostScript language printers" in mind.
> But the printer in this particular case is a HP PSC
> which is usually no PostScript printer and has therefore
> not a usual PostScript printer PPD file which might cause
> problems when "using the PPD files" on Apple OS 9.2?
> 
>>From the above "driver on the Macintosh" snippet I guess that
> on an Apple OS 9.2 client machine usually a printer driver runs
> which generates device specific data.
> 
> I also guess that an usual "advertized shared printer" in Apple OS 9.2
> is different than an usual advertized CUPS queue regarding the filtering.
> 
> I guess that a shared printer in Apple OS 9.2 is regarding
> the filtering more like a usual SMB printer share in Windows
> and not like an usual advertized CUPS queue?
> 
> 
> In particular I think about the following questions:
> 
> Where does usually the printer driver run in an AppleTalk network?
> On the client machines or on the server?
> How is printing to non-PostScript printers done in an AppleTalk network?
> 
> 
> Perhaps everything works well - at least to a reasonable extent - when
> on Apple OS 9.2 the LaserWriter driver runs which sends device specific
> PostScript using the PPD for the HP PSC from the CUPS server?
> But usually CUPS gets device specific features set via print job
> options and not somehow "embedded" in device specific PostScript.
> 
> 
> Finally I assume that "notifications about the printing process
> or problems (paper jam for example)" is probably not supported
> when printing from an AppleTalk network to a CUPS server.
> 
> 
> Kind Regards
> Johannes Meixner

In general, an AppleTalk network is a distributed network of entities which 
communicate with each other (to a more or less extent, in reality). 
Printing on these systems (my experience is restricted to Mac OS 7.01 to 
9.2, including A/UX) usually is governed by a GUI which is, up to a certain 
extent, comparable to print managers like Kprinter (a KDE component) or the 
corresponding printing GUI of Gnome or even the standalone XPP (X printing 
panel). 
Printing on these systems is essentially PostScript oriented, and choosing 
options for a print job is mostly based on the contents of the printer's PPD 
and, to some extent, on performing queries to the printer based on the query 
templates contained in the printer's PPD, and notifications about unexpected 
events like paper jam etc. are based on the error message the (PostScript) 
printer writes to it standard error stream. Note that the original Apple 
LaserWriter printers (and all the following compatible printers) implement a 
network interface that speaks PAP, which is a bidirectional protocol by 
design.

The papd (Printer Access Protocol Daemon) of the Netatalk suite tries to 
emulate this functionality as completely as possible and thus needs access 
to the printer's PPD. As for the CUPS support implemented in papd, I suppose 
it uses the respective IPP requests to query the printer's capabilities (as 
e.g. XPP does). I do not know if/how papd then handles printer errors (I 
think it tries to catch the backchannel and sidechannel streams CUPS 
supllies). As I currently have no opportunity to test this, I only could dig 
into the sources to find out how it operates.

Helge







More information about the cups mailing list