我们将使用的主要组件包括
CUPS
通用 UNIX 打印系统 (http://www.cups.org) 是一个打印假脱机程序和一组支持程序,用于使用和管理打印机。
Samba
Samba (http://www.samba.org) 是一种软件,它允许非 Windows 计算机通过实现 Windows 文件和打印机共享协议,像 Windows 计算机一样在网络上运行。
打印机驱动程序
LinuxPrinting.org (http://www.linuxprinting.org) 提供了最多的打印机驱动程序,并维护一个 Linux 支持的打印机数据库。 您必须为您要在 Linux 中使用的每种型号的打印机下载打印机驱动程序。 打印机驱动程序由 PPD 文件和过滤器程序组成,或者对于 PostScript 打印机,仅包含 PPD 文件。
所有必需的程序和库都是标准 Debian 软件包仓库的一部分。 您可以使用常用的 Debian 软件包工具下载和安装这些软件包。 以下是您需要的软件包列表
CUPS 服务器
CUPS BSD 命令
CUPS 客户端程序
LinuxPrinting.org 打印机支持程序
用于 UNIX 的 Samba SMB/CIFS 服务器
用于 UNIX 的 Samba SMB/CIFS 客户端
ESP Ghostscript ( http://www.cups.org/ghostscript.php)
在 Debian GNU/Linux 3.0 (又名 woody) 软件包中不可用,请使用 "gs" 代替。
GNU A2PS ( https://gnu.ac.cn/software/a2ps/)
以下命令将安装这些软件包。 您必须成为 root 用户或使用 sudo 来执行这些命令
apt-get update apt-get install cupsys cupsys-bsd cupsys-client foomatic-bin samba smbclient gs-esp a2ps |
特定打印机可能需要额外的软件包。 例如,对于许多 HP InkJet、DeskJet 和 LaserJet 打印机,必须安装 hpijs 软件包才能正常工作。 这些打印机的 PPD 文件通过字符串hpijs在其文件名中标识。
lpadmin 命令用于配置打印机。 以下是使用 CUPS 设置激光打印机的示例。 您必须成为 root 用户或使用 sudo 来执行这些命令
/usr/sbin/lpadmin -p Laser -v parallel:/dev/lp0 -P /root/laser.ppd /usr/bin/enable Laser /usr/sbin/accept Laser /usr/sbin/lpadmin -d Laser |
请注意,bash 有一个内置命令叫做 enable,因此 bash 用户必须使用完整路径 (/usr/bin/enable) 来启用打印机。
第一个命令创建一个名为 "Laser" 的新打印机,它连接到第一个并行端口,并使用 PPD 文件/root/laser.ppd。"Laser" 随后被启用,并被告知使用 enable 和 accept 命令接受作业。 最后一个命令将 "Laser" 设置为默认打印机。
如果您的打印机连接到 USB 端口,或者您不知道打印机的正确设备 URI,请尝试运行 /usr/sbin/lpinfo -v 以获取可用打印机设备的列表。
通过运行 /usr/bin/lpoptions -l 确保您的打印机页面尺寸和其他选项设置正确。 有关打印机配置的更多详细信息,请参阅 CUPS 文档。
文档通过使用 lpr 或 lp 后跟文件名进行假脱机。 您可以使用命令 lpstat -o 或 lpstat -p 查看打印队列并检查打印机状态。 要取消打印作业,请使用 cancel 或 lprm 后跟作业 ID。
CUPS 假脱机守护进程称为 cupsd。 它将文档转换为 PostScript,然后将它们转换为打印机原生格式 图 1。 不理解 PostScript 的打印机对文档使用栅格化或位图格式。 栅格化格式可能比原始 PostScript 大得多,并且需要更长的时间才能发送到打印机。
过滤器是用于将文档从一种格式转换为另一种格式的程序。 CUPS 假脱机程序将尽力为发送的文档找到合适的过滤器。 如果没有安装适合转换文档的过滤器,您将收到类似于以下的错误lpr: 无法打印文件: client-error-document-format-not-supported。
许多应用程序不包含其文档格式的过滤器。 使用这些应用程序创建的文档只能从应用程序本身内部打印,除非文档导出为 PostScript 或其他标准格式。