1OpenPrinting CUPS v2.4.12 2========================= 3 4 5 6[](https://github.com/OpenPrinting/cups/actions/workflows/build.yml) 7[](https://scan.coverity.com/projects/openprinting-cups) 8 9 10Introduction 11------------ 12 13OpenPrinting CUPS is the most current version of CUPS, a standards-based, open 14source printing system for Linux® and other Unix®-like operating systems. CUPS 15supports printing to: 16 17- [AirPrint™][1] and [IPP Everywhere™][2] printers, 18- Network and local (USB) printers with Printer Applications, and 19- Network and local (USB) printers with (legacy) PPD-based printer drivers. 20 21CUPS provides the System V ("lp") and Berkeley ("lpr") command-line interfaces, 22a configurable web interface, a C API, and common print filters, drivers, and 23backends for printing. The [cups-filters][3] project provides additional 24filters and drivers. 25 26CUPS is licensed under the Apache License Version 2.0 with an exception to allow 27linking against GNU GPL2-only software. See the files `LICENSE` and `NOTICE` 28for more information. 29 30> Note: Apple maintains a separate repository for the CUPS that ships with macOS 31> and iOS at <https://github.com/apple/cups>. 32 33[1]: https://support.apple.com/en-us/HT201311 34[2]: https://www.pwg.org/ipp/everywhere.html 35[3]: https://github.com/openprinting/cups-filters 36 37 38Reading the Documentation 39------------------------- 40 41Initial documentation to get you started is provided in the root directory of 42the CUPS sources: 43 44- `CHANGES.md`: A list of changes in the current major release of CUPS. 45- `CONTRIBUTING.md`: Guidelines for contributing to the CUPS project. 46- `CREDITS.md`: A list of past contributors to the CUPS project. 47- `DEVELOPING.md`: Guidelines for developing code for the CUPS project. 48- `INSTALL.md`: Instructions for building and installing CUPS. 49- `LICENSE`: The CUPS license agreement (Apache 2.0). 50- `NOTICE`: Copyright notices and exceptions to the CUPS license agreement. 51- `README.md`: This file. 52- `REPORTING_ISSUES.md`: Instructions what information to provide when reporting an issue. 53 54Once you have installed the software you can access the documentation (and a 55bunch of other stuff) online at <http://localhost:631/> and using the `man` 56command, for example `man cups`. 57 58If you're having trouble getting that far, the documentation is located under 59the `doc/help` and `man` directories. 60 61*Please read the documentation before asking questions.* 62 63 64Setting Up Printers 65------------------- 66 67CUPS includes a web-based administration tool that allows you to manage 68printers, classes, and jobs on your server. Open <http://localhost:631/admin/> 69in your browser to access the printer administration tools. You will be asked 70for the administration password (root or any other user in the "sys", "system", 71"root", "admin", or "lpadmin" group on your system) when performing any 72administrative function. 73 74The `lpadmin` command is used to manage printers from the command-line. For 75example, the following command creates a print queue called "myprinter" for an 76IPP Everywhere printer at address "11.22.33.44": 77 78 lpadmin -p myprinter -E -v "ipp://11.22.33.44/ipp/print" -m everywhere 79 80The `-p` option specifies the printer name. The `-E` option enables the printer 81and accepts new print jobs immediately. The `-v` option specifies the *device 82URI* for the printer, which tells CUPS how to communicate with the printer. And 83the `-m` option specifies the model (driver) to use, in this case the IPP 84Everywhere ("everywhere") driver that is used for AirPrint and IPP Everywhere 85printers as well as shared printers and printers supported through Printer 86Applications. 87 88Legacy printers are supported using PPD (PostScript Printer Description) files 89that describe printer capabilities and driver programs needed for each printer. 90CUPS includes several sample PPD files for common legacy printers: 91 92 Driver | PPD Name 93 -----------------------------|------------------------------ 94 Dymo Label Printers | drv:///sample.drv/dymo.ppd 95 Intellitech Intellibar | drv:///sample.drv/intelbar.ppd 96 EPSON 9-pin Series | drv:///sample.drv/epson9.ppd 97 EPSON 24-pin Series | drv:///sample.drv/epson24.ppd 98 Generic PCL Laser Printer | drv:///sample.drv/generpcl.ppd 99 Generic PostScript Printer | drv:///sample.drv/generic.ppd 100 HP DeskJet Series | drv:///sample.drv/deskjet.ppd 101 HP LaserJet Series | drv:///sample.drv/laserjet.ppd 102 OKIDATA 9-Pin Series | drv:///sample.drv/okidata9.ppd 103 OKIDATA 24-Pin Series | drv:///sample.drv/okidat24.ppd 104 Zebra CPCL Label Printer | drv:///sample.drv/zebracpl.ppd 105 Zebra EPL1 Label Printer | drv:///sample.drv/zebraep1.ppd 106 Zebra EPL2 Label Printer | drv:///sample.drv/zebraep2.ppd 107 Zebra ZPL Label Printer | drv:///sample.drv/zebra.ppd 108 109The sample drivers provide basic printing capabilities, but generally do not 110exercise the full potential of the printers or CUPS. Other drivers provide 111greater printing capabilities. 112 113You can run the `lpinfo -m` command to list all of the available drivers: 114 115 lpinfo -m 116 117Similarly, the `lpinfo -v` command lists the available printers and their device 118URIs: 119 120 lpinfo -v 121 122Once you know the device URI and driver name, add the printer using the 123`lpadmin` command: 124 125 lpadmin -p PRINTER-NAME -E -v "DEVICE-URI" -m DRIVER-NAME 126 127 128Printing Files 129-------------- 130 131CUPS provides both the System V `lp` and Berkeley `lpr` commands for printing: 132 133 lp FILENAME 134 lpr FILENAME 135 136Both the `lp` and `lpr` commands support printing options: 137 138 lp -o media=A4 -o resolution=600dpi FILENAME 139 lpr -o media=A4 -o resolution=600dpi FILENAME 140 141CUPS recognizes many types of images files as well as PDF, PostScript, and text 142files, so you can print those files directly rather than through an application. 143 144If you have an application that generates output specifically for your printer 145then you need to use the `-oraw` or `-l` options: 146 147 lp -o raw FILENAME 148 lpr -l FILENAME 149 150This will prevent the filters from misinterpreting your print file. 151 152 153Legal Stuff 154----------- 155 156Copyright © 2020-2025 by OpenPrinting 157 158Copyright © 2007-2020 by Apple Inc. 159 160Copyright © 1997-2007 by Easy Software Products. 161 162CUPS is provided under the terms of the Apache License, Version 2.0 with 163exceptions for GPL2/LGPL2 software. A copy of this license can be found in the 164file `LICENSE`. Additional legal information is provided in the file `NOTICE`. 165 166Unless required by applicable law or agreed to in writing, software distributed 167under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 168CONDITIONS OF ANY KIND, either express or implied. See the License for the 169specific language governing permissions and limitations under the License. 170