HP DeskJet 720c
Setting up this printer to work with CUPS, it turns out, is a fairly involved task. This tutorial is helpful in getting started: http://brendan.sdf-eu.org/articles/install_winprinter.php
If you're able to follow this tutorial to the letter and get CUPS working, then you can skip down to the "Printing from Windows Clients" section.
Additional Notes for Slackware
Since the above linked tutorial will solve most of your problems, this tutorial will fill in the additional steps that needed to be done to get the printer working in Slackware, because that's the distro I use for my print server, but they should apply in general to most standard distros.
A full installation of Slackware already comes with Ghostscript, Ghostscript Fonts, CUPS, and foomatic-rip, so you'll only need to install pnm2ppa and the corresponding CUPS PPM driver for your printer. You can download the latest version of pnm2ppa from their SourceForge page.
tar -zxvf pnm2ppa-version.tar.gz cd pnm2ppa-version
You'll need to change the Makefile so that the binaries are installed to the right place.
Old version of Makefile:
BINDIR="/usr/local/bin" CONFDIR="/etc" MANDIR="/usr/local/man/man1"
Makefile after necessary changes:
BINDIR="/usr/bin" CONFDIR="/etc" MANDIR="/usr/man/man1"
After this, compilation and installation should be pretty easy:
make && make install
Now, you need the corresponding PPD file for your printer, which you can get from the PPD-O-Matic page. The CUPS configuration for your printer will require this file.
After this, you should be able to follow the contents of the original tutorial to get it to work on the local machine. Once you have CUPS printing out test pages properly, you can move on to printing from Windows clients to the Linux-hosted printer.
Printing from Windows Clients
It turns out that this is quite simple. I spent hours and hours trying to get it to work over Samba, but Samba is not even needed as a go-between; Windows clients are able to talk directly to CUPS servers over IPP. This tutorial is worth a read for this, or you can just follow the instructions below.
Once the CUPS server is set up, all you need to do to make Windows clients work with it is to add a printer using the Add Printer Wizard, and specify a network printer at the url
where "printserver" is the hostname or IP of the CUPS server and "yourprinter" is the short name of your printer. For example, this is my URL:
When it asks you for a driver, choose a manufacturer of "Generic" and the print model "MS Publisher Imagesetter." This will automatically convert the documents you print into a format readable by CUPS and the printer driver. After this, if everything's set up correctly, you should be able to print out a test page with the Windows client. The Windows versions I tried this on are XP Tablet PC Edition, XP Home, and 7 Enterprise, and they all were able to print out test pages successfully.