How to share a printer via CUPS
This simple tutorial shows how to share a Linux-connected printer with other Linux and Windows systems using CUPS web interface. The author assumes the printer is already installed in the system (which sometimes requires downloading or compiling additional software ie. for Hewlett Packard Laser Jet 1020, 1018 printers, etc.)
Configuring CUPS server
In order to configure CUPS one can access it with a browser using http://localhost:631/. In order to share printers and allow remote management (which is helpful when the computer with CUPS is in another room) check the appropriate boxes as in the image below. In the example below CUPS server is already accessed remotely with local network address 192.168.1.1, which might be different in your case:
Now we can check what printers are installed (tip: when adding a printer to the system assign a simple name to it. This will reduce typos later).
Configuring Linux client
If the computers are in the same subnetwork (ie. 192.168.1.*) the CUPS-shared printer should be available for them right-off. However if there are other networks (ie. wi-fi might have different IP pool) then if one wants to print to HP1020 from another Linux computer (from any local subnetwork routable to CUPS server) one needs to go to CUPS web interface on that machine and try to add a network printer via Internet Printing Protocol (http):
One must specify a simple http address which usually contains server name and port 631, printers subdirectory and the priter name as below. Thus a simple printer name saves typing here:
Then you have to proceed as if you were adding a local printer: add a name to that printer, description, and choose vendor and model. Keep in mind that you need drivers for that printer available on your system.
Configuring Windows client
Procedure is quite similiar: If one wants to print to HP1020 from a Windows computer one needs to try to add a Network Printer. The examples below are in Polish, however the images are self-explaining enough to be helpful, I hope:
Then specify the address as in Linux case; it usually contains server address, port 631, printers subdirectory and the priter name as below (here HP1020 - some part of the name is invisible due to short textfield in the form):
The last step is selection of vendor and model - usually listed alphabetically, however sometimes newly added drivers are at the very bottom:
If the driver is in the system the printer should work right off, at least mine do.