C C++ Makefile M4 Shell Roff Other
Clone or download
Latest commit 06e79a5 Jul 18, 2018
Permalink
Failed to load latest commit information.
backend Replace the rest of the uses of __attribute__ that need to be portabl… Jul 9, 2018
berkeley Replace the rest of the uses of __attribute__ that need to be portabl… Jul 9, 2018
cgi-bin Replace the rest of the uses of __attribute__ that need to be portabl… Jul 9, 2018
conf Update copyrights and license text on files that were missed. Feb 21, 2018
config-scripts Move libcupsimage to the "cups" subdirectory, along with its unit tes… Jan 18, 2018
cups Explicitly list IPP_TAG_STRING in ippReadIO. Jul 18, 2018
data Update copyrights and license text on files that were missed. Feb 21, 2018
desktop License change: Apache License, Version 2.0. Nov 7, 2017
doc Fix link to CUPS Programming Manual. Jun 5, 2018
examples Update copyrights and license text on files that were missed. Feb 21, 2018
filter Merge pull request #5350 from benlees/master Jul 18, 2018
locale locale/zh_CN: complete translation Jun 12, 2018
man Fix local privilege escalation to root and sandbox bypasses in scheduler Jun 5, 2018
monitor Changelog and dependencies updates. Feb 20, 2018
notifier Update changelog, copyright... May 11, 2018
packaging Add cups_en.po file (Issue #5276) Mar 23, 2018
ppdc Additions to print density corrections Jul 8, 2018
scheduler The scheduler was being backgrounded on macOS, causing applications t… Jul 18, 2018
systemv Fix regression in lpadmin fix (Issue #5305) Jul 18, 2018
templates Fixed wrong translation in header.tmpl Jul 4, 2018
test Fix regression in lpadmin fix (Issue #5305) Jul 18, 2018
tools Specify GPG signing user. Jun 6, 2018
vcnet License change: Apache License, Version 2.0. Nov 7, 2017
xcode Move away from using __attribute__ directly (Issue #5349) Jul 9, 2018
.gitattributes Ignore all .git* files too. Apr 13, 2016
.gitignore Add missing cups-lpd service file (needs to be present for Xcode proj… Feb 28, 2018
.mailmap Add a mailmap for correct work attribution Mar 17, 2016
CHANGES.md Changelog. Jul 18, 2018
CONTRIBUTING.md License change: Apache License, Version 2.0. Nov 7, 2017
CREDITS.md Rename README, INSTALL, CHANGES, and CREDITS files to .md (markdown). May 1, 2017
DEVELOPING.md License change: Apache License, Version 2.0. Nov 7, 2017
INSTALL.md Update versions in README and INSTALL Jun 5, 2018
LICENSE License change: Apache License, Version 2.0. Nov 7, 2017
Makedefs.in License change: Apache License, Version 2.0. Nov 7, 2017
Makefile License change: Apache License, Version 2.0. Nov 7, 2017
NOTICE Changelog and dates. Jan 10, 2018
README.md Update versions in README and INSTALL Jun 5, 2018
config.guess Add support for cross-compilation (Issue #4897) Apr 24, 2017
config.h.in License change: Apache License, Version 2.0. Nov 7, 2017
config.sub Add support for cross-compilation (Issue #4897) Apr 24, 2017
configure Bump version to 2.3b6, changelog. Jun 5, 2018
configure.ac Bump version to 2.3b6, changelog. Jun 5, 2018
cups-config.in Update copyrights and license text on files that were missed. Feb 21, 2018
install-sh Remove all of the Subversion keywords from various source files. Apr 12, 2016

README.md

README - CUPS v2.3b5 - 2018-06-05

Looking for compile instructions? Read the file INSTALL.md instead...

INTRODUCTION

CUPS is a standards-based, open source printing system developed by Apple Inc. for macOS® and other UNIX®-like operating systems. CUPS uses the Internet Printing Protocol ("IPP") and provides System V and Berkeley command-line interfaces, a web interface, and a C API to manage printers and print jobs. It supports printing to both local (parallel, serial, USB) and networked printers, and printers can be shared from one computer to another, even over the Internet!

Internally, CUPS uses PostScript Printer Description ("PPD") files to describe printer capabilities and features and a wide variety of generic and device- specific programs to convert and print many types of files. Sample drivers are included with CUPS to support many Dymo, EPSON, HP, Intellitech, OKIDATA, and Zebra printers. Many more drivers are available online and (in some cases) on the driver CD-ROM that came with your printer.

CUPS is licensed under the Apache License Version 2.0. See the file "LICENSE" for more information.

READING THE DOCUMENTATION

Once you have installed the software you can access the documentation (and a bunch of other stuff) online at http://localhost:631/.

If you're having trouble getting that far, the documentation is located under the doc/help and man directories.

Please read the documentation before asking questions.

GETTING SUPPORT AND OTHER RESOURCES

If you have problems, read the documentation first! We also provide two mailing lists which are available at https://lists.cups.org/mailman/listinfo.

See the CUPS web site at https://www.cups.org/ for other resources.

SETTING UP PRINTER QUEUES USING YOUR WEB BROWSER

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:

Do not use the hostname for your machine - it will not work with the default CUPS configuration. To enable administration access on other addresses, check the Allow Remote Administration box and click on the `Change Settings button.

You will be asked for the administration password (root or any other user in the sys/system/root/admin/lpadmin group on your system) when performing any administrative function.

SETTING UP PRINTER QUEUES FROM THE COMMAND-LINE

CUPS currently uses PPD (PostScript Printer Description) files that describe printer capabilities and driver programs needed for each printer. The everywhere PPD is used for nearly all modern networks printers sold since about 2009. For example, the following command creates a print queue for a printer at address 11.22.33.44:

lpadmin -p printername -E -v ipp://11.22.33.44/ipp/print -m everywhere

CUPS also includes several sample PPD files you can use for "legacy" printers:

Driver                         PPD Name
-----------------------------  ------------------------------
Dymo Label Printers            drv:///sample.drv/dymo.ppd
Intellitech Intellibar         drv:///sample.drv/intelbar.ppd
EPSON 9-pin Series             drv:///sample.drv/epson9.ppd
EPSON 24-pin Series            drv:///sample.drv/epson24.ppd
Generic PCL Laser Printer      drv:///sample.drv/generpcl.ppd
Generic PostScript Printer     drv:///sample.drv/generic.ppd
HP DeskJet Series              drv:///sample.drv/deskjet.ppd
HP LaserJet Series             drv:///sample.drv/laserjet.ppd
OKIDATA 9-Pin Series           drv:///sample.drv/okidata9.ppd
OKIDATA 24-Pin Series          drv:///sample.drv/okidat24.ppd
Zebra CPCL Label Printer       drv:///sample.drv/zebracpl.ppd
Zebra EPL1 Label Printer       drv:///sample.drv/zebraep1.ppd
Zebra EPL2 Label Printer       drv:///sample.drv/zebraep2.ppd
Zebra ZPL Label Printer        drv:///sample.drv/zebra.ppd

You can run the lpinfo -m command to list all of the available drivers:

lpinfo -m

Run the lpinfo -v command to list the available printers:

lpinfo -v

Then use the correct URI to add the printer using the lpadmin command:

lpadmin -p printername -E -v device-uri -m ppd-name

Current network printers typically use ipp or ipps URIS:

lpadmin -p printername -E -v ipp://11.22.33.44/ipp/print -m everywhere
lpadmin -p printername -E -v ipps://11.22.33.44/ipp/print -m everywhere

Older network printers typically use socket or lpd URIs:

lpadmin -p printername -E -v socket://11.22.33.44 -m ppd-name
lpadmin -p printername -E -v lpd://11.22.33.44/ -m ppd-name

The sample drivers provide basic printing capabilities, but generally do not exercise the full potential of the printers or CUPS. Other drivers provide greater printing capabilities.

PRINTING FILES

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 -oraw or -l options:

lp -o raw filename
lpr -l filename

This will prevent the filters from misinterpreting your print file.

LEGAL STUFF

Copyright © 2007-2018 by Apple Inc. Copyright © 1997-2007 by Easy Software Products.

CUPS is provided under the terms of the Apache License, Version 2.0. A copy of this license can be found in the file LICENSE. Additional legal information is provided in the file NOTICE.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.