Printing on Linux
printing itself requires software that converts information from application you are using to a language your printer can understand.
The Linux standard for printing software is the Common UNIX Printing System (CUPS
)
Modern Linux desktop systems make installing and administering printers simple and intuitive.
Nevertheless, it is instructive to understand the underpinnings of how it is done in Linux.
CUPS Overview
CUPS
interprets page descriptions produced by your application (put a paragraph here, draw a line there, and so forth) and then sends the information to the printer. it acts as a print server for both local and network printers.
Printers manufactured by different companies may use thire own particular print lnagues and formats. CUPS uses a modular printing system that accommodates a wide variety printers and also processes various data formats.
Configuration Files
cupsd.conf and printers.conf
all other CUPS-related configuration files are stored under the /etc/cups
cupsd.conf is where most system-wide settings are located. it does not contain any printer-specific details.
most of the settings available in this file relate to network security
printers.conf is where you will find the printer-specific settings.
Job Files
/var/spool/cups
commonly known as print queues
Log Files
/var/log/cups/
directory contains logfile that is used by scheduler to record activities that have taken place.
Filters, Printer Drivers, and Backends
CUPS uses filters to convert job file formats to printable formats. Printer drivers
contain descriptions for currently connected / configured printers,
and are usually store under /etc/cups/ppd/.
The print data is then sent to the printer through a filter, and via backend
that helps to locate devices connected to the system.