CUPS supports printing to:
CUPS provides the System V ("lp") and Berkeley ("lpr") command-line interfaces, a configurable web interface, a C API, and common print filters, drivers, and backends for printing. The cups-filters project provides additional filters and drivers.
CUPS is licensed under the Apache License Version 2.0 with an exception to allow linking against GNU GPL2-only software.
CUPS includes a web-based administration tool that allows you to manage printers, classes, and jobs on your server. Open http://localhost:631/admin/ in your browser to access the printer administration tools. You will be asked for the administration password (root or any other user in the "sys", "system", "root", "admin", or "lpadmin" group on your system) when performing any administrative function.
The "lpadmin" command is used to manage printers from the command-line. For example, the following command creates a print queue called "myprinter" for an IPP Everywhere printer at address "188.8.131.52":
lpadmin -p myprinter -E -v "ipp://184.108.40.206/ipp/print" -m everywhere
You can run the "lpinfo" command to list all of the available drivers ("lpinfo -m") or printers ("lpinfo -v").
CUPS provides both the System V ("lp") and Berkeley ("lpr") commands for printing:
lp filename lpr filename
Both the "lp" and "lpr" commands support printing options for the driver:
lp -o media=A4 -o resolution=600dpi filename lpr -o media=A4 -o resolution=600dpi filename
CUPS recognizes many types of images files as well as PDF, PostScript, and text files, so you can print those files directly rather than through an application.
If you have an application that generates output specifically for your printer then you need to use the "-o raw" or "-l" options:
lp -o raw filename lpr -l filename
This will prevent the filters from misinterpreting your print file.