Archive:Docs/Drafts/AdministrationGuide/CupsPrinting

= CUPS Printing = CUPS encompasses many different aspects of printing. For quick snapshot, it is CUPS when you are: In short CUPS can act both as server and client towards different operating systems, be it linux, MS or Mac. With these features CUPS is ideal for heterogeneous networks. To give an idea of pervasiveness CUPS can deliver, one can have printer hooked to MS box, access it from another Linux/CUPS machine and subsequently publish further from CUPS/linux machine to the rest of the network to all different computers running MS/Linux/Mac.
 * printing from your linux computer to a printer, attached to your computer straight;
 * printing from linux to a printer attached to another computer running linux (cups);
 * printing from MS to a printer, attached to a computer running linux (cups+samba);
 * printing from linux machine to a printer, attached to a computer running MS (cups+smbclient);

Installation/packages
All part of Fedora repo, can be installed with. Once installed enable for future boots by running the command  and enable for current session with.
 * - core of the system;
 * gui config tool;
 * - provides KDE gui config utility;

Configuration
Bulk of CUPS configuration can be done from user friendly graphical interface. Three (supposedly equivalent) options are available: There is an opinion that of three the web based utility is preferable both, by functionality and reliability. Present page will follow web based interface where gui configuration will be proper, other two interfaces mimic the first very closely, things done the same way.
 * web based config utility,  - the way to go;
 * system-config-printer - user friendly graphical utility;
 * kprinter - accessible from Settings > Printer in KDE;

web based interface and cupsd.conf
the default configuration of CUPS is open towards localhost, but closed towards other computers, which config is controlled from  file. The format is allow/deny similar to many other linux configs. the default config file is selfexplanatory and one can add options at own discretion. namely, if you want to have web interface access with admin privileges you need modify  and  tags. Here is example from my  file which allowes both printing and administering from any IP on local network.

port 631
By default CUPS is using port 631 which needs to be open if using Firewall.

local printer
Some usb printers will be detected automatically, else from  click button   and for the rest it is pretty much self explanatory.

network Linux printer
After  button choose   printer and on next screen enter the printer path   (ipp stands for Internet printing protocol and is supported by both, linux and MS).

Alternately, if you have the openslp package installed on the machine with the printer attached then the printer can be automatically discovered and configured by other hosts on the network.

network MS printer
The same as above, after  button choose   printer and on next screen enter the printer path. You can also use.

drivers and Openprinting.org
If driver availability turns out a problem (you don't find your printer in available list) try to google ppd file for you printer. is one large pool of linux supported printer drivers. If you find ppd file, you can indicate it instead of choosing one from available list in appropriate installation step.

Sharing with other linux machines
button at   does the job. You can finetune access right in  file by modifying allow/deny options  tag.

Sharing with MS boxes
In addition to be published, to enable other MS computers to print to your CUPS shared printer, it needs to be shared through Samba, which can be easily done using   -   Swat  web based configuration tool for Samba, the printer tab there is pretty mush self explanatory. One only needs to add ip for admitted clients in hosts allow line. The config can be verified in  file which among other must contain following [global] ... printcap name = cups printing = cups cups options = raw print command = lpq command = %p lprm command = ... [printers] comment = All Printers path = /var/spool/samba printer admin = root guest ok = Yes printable = Yes use client driver = Yes browseable = No ...