OpenPrinting/cups
GitHub: OpenPrinting/cups
OpenPrinting CUPS 是适用于 Linux 和 Unix 操作系统的标准开源打印系统,支持 AirPrint 和 IPP Everywhere 协议。
Stars: 1568 | Forks: 281
# OpenPrinting CUPS v2.5b1


[](https://github.com/OpenPrinting/cups/actions/workflows/build.yml)
[](https://scan.coverity.com/projects/openprinting-cups)
## 简介
OpenPrinting CUPS 是 CUPS 的最新版本,它是一个基于标准的开源打印系统,适用于 Linux® 和其他类 Unix® 操作系统。CUPS 支持打印到:
- [AirPrint™][1] 和 [IPP Everywhere™][2] 打印机,
- 使用打印机应用程序的网络和本地 (USB) 打印机,以及
- 使用(传统)基于 PPD 的打印机驱动程序的网络和本地 (USB) 打印机。
CUPS 提供了 System V ("lp") 和 Berkeley ("lpr") 命令行界面、可配置的 Web 界面、C API,以及用于打印的通用过滤器、驱动程序和后端。[cups-filters][3] 项目提供了额外的过滤器和驱动程序。
CUPS 根据 Apache License Version 2.0 许可,附带一项允许链接到仅限 GNU GPL2 软件的例外条款。有关更多信息,请参阅 `LICENSE` 和 `NOTICE` 文件。
## 阅读文档
CUPS 源代码的根目录中提供了入门所需的初始文档:
- `CHANGES.md`: CUPS 当前主要版本的更改列表。
- `CONTRIBUTING.md`: 为 CUPS 项目做贡献的指南。
- `CREDITS.md`: CUPS 项目过去的贡献者列表。
- `DEVELOPING.md`: 为 CUPS 项目开发代码的指南。
- `INSTALL.md`: 构建和安装 CUPS 的说明。
- `LICENSE`: CUPS 许可协议 (Apache 2.0)。
- `NOTICE`: 版权通知和 CUPS 许可协议的例外条款。
- `README.md`: 本文件。
- `REPORTING_ISSUES.md`: 报告问题时需提供哪些信息的说明。
安装软件后,您可以在线访问文档(以及其他许多内容),地址为 ,也可以使用 `man` 命令,例如 `man cups`。
如果您在进行到这一步时遇到困难,文档位于 `doc/help` 和 `man` 目录下。
*请在提问之前阅读文档。*
## 设置打印机
CUPS 包含一个基于 Web 的管理工具,允许您管理服务器上的打印机、类和作业。在浏览器中打开 即可访问打印机管理工具。执行任何管理功能时,系统会要求您输入管理密码(您系统上的 root 或 "sys"、"system"、"root"、"admin" 或 "lpadmin" 组中的任何其他用户)。
`lpadmin` 命令用于从命令行管理打印机。例如,以下命令为地址 "11.22.33.44" 处的 IPP Everywhere 打印机创建一个名为 "myprinter" 的打印队列:
```
lpadmin -p myprinter -E -v "ipp://11.22.33.44/ipp/print" -m everywhere
```
`-p` 选项指定打印机名称。`-E` 选项启用打印机并立即接受新的打印作业。`-v` 选项指定打印机的 *设备 URI*,它告诉 CUPS 如何与打印机通信。`-m` 选项指定要使用的型号(驱动程序),在本例中为 IPP Everywhere ("everywhere") 驱动程序,该驱动程序用于 AirPrint 和 IPP Everywhere 打印机,以及共享打印机和通过打印机应用程序支持的打印机。
传统打印机通过 PPD(PostScript 打印机描述)文件获得支持,这些文件描述了每台打印机所需的打印机功能和驱动程序。CUPS 包含了几个用于常见传统打印机的示例 PPD 文件:
驱动程序 | PPD 名称
-----------------------------|------------------------------
Dymo 标签打印机 | drv:///sample.drv/dymo.ppd
Intellitech Intellibar | drv:///sample.drv/intelbar.ppd
EPSON 9 针系列 | drv:///sample.drv/epson9.ppd
EPSON 24 针系列 | drv:///sample.drv/epson24.ppd
通用 PCL 激光打印机 | drv:///sample.drv/generpcl.ppd
通用 PostScript 打印机 | drv:///sample.drv/generic.ppd
HP DeskJet 系列 | drv:///sample.drv/deskjet.ppd
HP LaserJet 系列 | drv:///sample.drv/laserjet.ppd
OKIDATA 9 针系列 | drv:///sample.drv/okidata9.ppd
OKIDATA 24 针系列 | drv:///sample.drv/okidat24.ppd
Zebra CPCL 标签打印机 | drv:///sample.drv/zebracpl.ppd
Zebra EPL1 标签打印机 | drv:///sample.drv/zebraep1.ppd
Zebra EPL2 标签打印机 | drv:///sample.drv/zebraep2.ppd
Zebra ZPL 标签打印机 | drv:///sample.drv/zebra.ppd
示例驱动程序提供基本的打印功能,但通常无法发挥打印机或 CUPS 的全部潜力。其他驱动程序提供更强大的打印功能。
您可以运行 `lpinfo -m` 命令列出所有可用的驱动程序:
```
lpinfo -m
```
同样,`lpinfo -v` 命令列出可用的打印机及其设备 URI:
```
lpinfo -v
```
一旦知道了设备 URI 和驱动程序名称,请使用 `lpadmin` 命令添加打印机:
```
lpadmin -p PRINTER-NAME -E -v "DEVICE-URI" -m DRIVER-NAME
```
## 打印文件
CUPS 提供了用于打印的 System V `lp` 和 Berkeley `lpr` 命令:
```
lp FILENAME
lpr FILENAME
```
`lp` 和 `lpr` 命令都支持打印选项:
```
lp -o media=A4 -o resolution=600dpi FILENAME
lpr -o media=A4 -o resolution=600dpi FILENAME
```
CUPS 可以识别多种类型的图像文件以及 PDF、PostScript 和文本文件,因此您可以直接打印这些文件,而无需通过应用程序。
如果您有一个专门为您的打印机生成输出内容的应用程序,则需要使用 `-oraw` 或 `-l` 选项:
```
lp -o raw FILENAME
lpr -l FILENAME
```
这将防止过滤器错误地解释您的打印文件。
## 贡献代码和翻译
代码贡献应在 Github 网站上作为 pull requests(拉取请求)提交:
```
http://github.com/OpenPrinting/cups/pulls
```
详情请参阅 "CONTRIBUTING.md" 文件。
CUPS 使用 [Weblate][WL] 来管理 Web 界面、命令行程序以及常见 IPP 属性和值的本地化,这些同样会作为 Github 上的 pull requests 出现。
## 法律信息
Copyright © 2020-2025 by OpenPrinting
Copyright © 2007-2020 by Apple Inc.
Copyright © 1997-2007 by Easy Software Products.
CUPS 是根据 Apache License Version 2.0 提供的,其中包含针对 GPL2/LGPL2 软件的例外条款。此许可证的副本可以在 `LICENSE` 文件中找到。`NOTICE` 文件中提供了其他法律信息。
除非适用法律要求或以书面形式同意,否则根据本许可分发的软件是按“原样”基础分发的,不附带任何明示或暗示的担保或条件。有关许可下的权限和限制的具体语言,请参阅许可协议。
标签:AirPrint, Apache 2.0, Awesome, Berkeley, C API, CUPS, cups-filters, Cutter, IPP, IPP Everywhere, OpenPrinting, PPD, System V, Unix, USB打印, Web界面, 后端, 开源, 打印机驱动, 打印系统, 打印过滤器, 数字足迹, 系统管理, 网络打印