Dysmey Post > Projects & Stuff > Janovac > Printing


Setting up a local network printing service with CUPS.


Printing on a Fedora or other U◊◊◊/Linux system is done using the Postscript language, which describes how the fonts and images are laid out in a way that a printer can understand and process into a printed document.

Documents sent to a printer become print jobs. Print jobs are put in a print queue, from where they are sent to a printer on a first-come, first-served basis; that is why it is called a queue, the British word for the kind of line people stand in. There is at least one, and can be more, print queues. Managing the handling of print jobs and queues is a piece of software called a spool

On Linux the printer-handling system is called CUPS, an open-source software from Apple that manages the spool, queues, and Postscript translation for a wide variety of printers.


Actually, if you have chosen Servers → Printing Service while installing Fedora 10, all the stuff Fedora needs to set up a printer is already there, include CUPS, drivers for HP printers (including my Deskjet D1341), and utilities like GhostScript, which converts text and Web page files to Postscript.

With this, all I had to do is to plug my printer into a Janovac USB port. Fedora detected the printer and configured CUPS accordingly. In a few minutes, my printer was ready.

On the menu bar, I went to System → Administration → Printing. There was my printer, which I will name φ, in the window. I right-clicked on the icon and choose Properties from the menu. Under Settings/Tests and Maintenance, I pressed Print Test Page. Out of the printer came a test page that was more comprehensive than the ones Windows prints: A color wheel, gray ramp (shades of gray from white to black), 1-degree radial lines (to test clarity), and information on the imagable area and Postscript interpreter, all lined with English and metric rules.


But the biggest test will be whether I can print to the Deskjet from my Windows boxes.

First, the IPP that underlies CUPS needs to be open to the local network. You will need to go to System → Administration → Firewall, log in as root, and open Network Printing Server (port 631 tcp/ucp) to allow the network to access CUPS. If you do not open CUPS, the Windows boxes can see the printer but will not be able to print to it.

Next, in the Samba configuration file smb.conf, I put this directive.

    comment = All Printers
    path = /var/spool/samba
    browseable = no
;   guest ok = no
;   writable = No
    printable = yes


After this you install the drivers for your printer on the Windows boxes, making sure that you access the printer as a network printer under \\janovac\φ and that the appropriate driver is ready. You may have to visit the HP Support site to get the driver.

I have found that for my printer, from the Nabiki box running Windows XP the test page prints out fine; but from the Madoka box running 64-bit Windows Vista, the colors on the test page look like they were set out in the sun too long. It prints fine if the printer is plugged directly into Madoka, leading me to suspect that color information is lost between Vista and CUPS.

The solution to the Vista problem is to install the drivers for Microsoft Windows Vista, not Microsoft Windows Vista (64-bit). I have found that the first (SF_CDA_Full_Non-Network_enu.exe) brings out the true colors, while the second (HP_Vista_SF_Ph1.exe) produces the sun-bleached, washed-out color. Evidently there is something in the 64-bit driver that does not work well with CUPS. Do not be spooked by the non-network in the installation file's name. As long as you install just the drivers and not all that extra junk, you will be fine.


CUPS used to stand for the Common U◊◊◊ Printing System. But the need to disassociate from U◊◊◊ itself, especially in light of the SCO legal attacks on Linux, forced the project at Apple to drop any claim that CUPS is an acronym, although its logo still carries it.

Written by Andy West on 9 July 2009.