How to print on an Appletalk printer via Linux and how to serve that printer in a Mac network.
I will first focus on how to 'see' the printer on the linux machine.
You will need a bridge. I use one manufactured by Dayna. One has to connect the Appletalk printer to the bridge via a localtalk cable. The other end of the bridge is connected via an ethernetcable to the network (I use a hub). The hub is connected to my linuxbox working as the printserver. This is the hardware part.

On the software side on the linux box, one needs to install the netatalk package. For more information see:
For general things, I advise you to read both documents.

When the netatalk package is installed and working one should 'see' the printer on the Appletalk network. One has to type the command nbplkup and then one should see all connected printers on the Appletalk network.

[jeroen@diederen jeroen]$ nbplkup
diederen:AFPServer 65280.138:13
Gast-folder:AFPServer 65280.138:12
Linuxprinter:LaserWriter 65280.138:12
diederen:netatalk 65280.138:4
diederen:Workstation 65280.138:4
Lasertje:LaserWriter 65520.80:128

One sees Lasertje:Laserwriter, this is the printer. The Linuxprinter is an entry which I created on the Linuxbox to act as printserver for the Laserwriter (it is a virtual printer so to say). More on that later.

To actually make the printer visible for the linux computer with CUPS, one has to use the pap script to convert text into pdf which is then sent to the printer. One needs the right PPD-file (Postscript Printer Description file) for the printer. One can download ppd files in mac format here:

Nowadays is the pap script part of CUPS (I introduced it). when you use an old version of CUPS one can download the script here:

On my linux box I copied the script to /usr/lib/cups/backend/ , made it executable and restarted CUPS. One can now add the printer with the CUPS GUI (http://localhost:631). The printer should be recognized automatically and after choosing the right driver the configuration is complete. On how to use this CUPS printer in a network of *nixes I recommend you to read CUPS documentation. With my other linux box running Mandrake 9.1 PPC I can automatically find this printer.

To serve this printer in a Windows network I recommend you to read the Samba homepage, I don't have experience with that.

To serve the printer in a Macintosh network is in principle possible without the need to have the linux box serve the printer. I use the linux box to serve the printer. One has to then do the following.

Add the following lines in the /etc/atalk/papd.conf file:

Linuxprinter:\ (the name as it will have to show up in the Appletalk network)
:pr=|/usr/bin/lpr -P Lasertje:\
(the path to the PPD file)

Restart the appletalk service on the linux box. Now the 'Linuxprinter' should show up in the "Chooser" in Classic MacOS or with the printer utiliy under MacOS X.