本文详解Linux系统中基于CUPS的批量打印实现。涵盖CUPS服务安装、打印机队列创建、使用lp命令提交多文件任务,以及通过Shell脚本实现自动化批量打印。包含查看队列状态、取消任务等常用管理命令,帮助系统管理员高效处理打印需求。
批量打印最终效果预览
完成配置后,系统后台将自动处理打印任务队列。用户无需逐个操作,只需提交文件或运行脚本,CUPS服务即可按顺序将文档发送至打印机。下图展示了通过命令行成功提交多个文件至打印队列后的状态,系统会返回任务ID以供后续管理。

前置准备:安装与配置CUPS服务
Linux系统通常使用CUPS(Common Unix Printing System)作为标准打印服务。在开始批量打印之前,需确保系统已安装并运行CUPS服务。
第1步:安装CUPS软件包
大多数现代Linux发行版(如Ubuntu、Debian)默认未安装CUPS。首先更新软件源并安装CUPS核心组件。
- 打开终端。
- 执行以下命令安装CUPS:
sudo apt-get update然后sudo apt-get install cups
第2步:启动并启用CUPS服务
安装完成后,需启动服务并设置为开机自启,以确保打印功能随时可用。
- 执行命令启动服务:
sudo systemctl start cups - 执行命令启用自启:
sudo systemctl enable cups
第3步:通过Web界面添加打印机(可选)
CUPS提供了基于Web的管理界面,方便图形化添加打印机。在浏览器中访问 http://localhost:631,按照向导添加物理打印机或网络打印机。若仅使用命令行批量打印,此步可跳过,直接通过命令配置队列。
核心操作:创建打印队列与提交任务
批量打印的核心在于将多个文件有序地发送到同一个打印队列。CUPS通过“打印队列(Queue)”机制管理这些任务。
第4步:使用lpadmin创建打印队列
若未通过Web界面添加打印机,可使用 lpadmin 命令创建队列。该命令允许指定打印机名称、设备URI及驱动程序。
sudo lpadmin -p myprinter -E -v ipp://printer_ip_address/ipp/print -m everywhere参数说明:
-p myprinter:定义打印队列的名称,后续操作将引用此名称。-E:启用打印队列并允许接收打印任务。-v ipp://...:指定打印机的网络地址(IPP协议)。-m everywhere:使用CUPS的通用驱动程序,适用于大多数现代打印机。
第5步:使用lp命令进行批量打印
lp 是Linux中用于提交打印任务的主要命令。它支持一次性提交多个文件,系统会自动将它们加入队列并按顺序处理。
lp -d myprinter file1.txt file2.pdf file3.docx操作要点:
-d myprinter:指定目标打印队列名称。- 后续参数为要打印的文件列表,支持多种格式(如txt, pdf, docx等,需系统支持相应转换)。
执行后,终端将返回任务ID(如 myprinter-101),表示任务已成功加入队列。
队列管理与自动化处理
批量打印过程中,监控队列状态和实现自动化是提升效率的关键。
第6步:查看打印队列状态
使用 lpstat 命令检查当前队列中的任务及其状态(如等待、打印中、已完成)。
lpstat -o该命令将列出所有队列的任务ID、文件名、大小及状态,帮助确认批量任务是否按预期执行。
第7步:取消或清空打印任务
若发现错误文件被提交,或需要紧急停止打印,可使用 cancel 命令。
- 取消单个任务:
cancel job_id(例如cancel myprinter-101)。 - 清空整个队列:
cancel -u all将清除当前用户的所有打印任务。
第8步:编写Shell脚本实现自动化
对于频繁进行的批量打印,建议编写Shell脚本以简化操作。以下脚本示例演示了如何遍历文件列表并自动提交打印任务。
#!/bin/bash
# 定义打印队列名称
PRINTER="myprinter"
# 定义要打印的文件列表
FILES=("file1.txt" "file2.pdf" "file3.docx")
# 遍历文件列表并逐个提交打印任务
for FILE in "${FILES[@]}"; do
# 检查文件是否存在
if [ -f "$FILE" ]; then
lp -d $PRINTER $FILE
echo "已提交打印任务: $FILE"
else
echo "文件不存在: $FILE,跳过"
fi
done使用方法:
- 将上述代码保存为
batch_print.sh。 - 赋予执行权限:
chmod +x batch_print.sh - 运行脚本:
./batch_print.sh
常见问题与调整建议
- 文件无法打印:确保文件格式被CUPS支持。对于非PDF/TXT文件(如Word),可能需要安装
libreoffice或antiword等转换工具。 - 队列堵塞:若队列长时间停滞,检查打印机连接状态及CUPS服务日志(
/var/log/cups/error_log)。 - 权限问题:确保执行
lp命令的用户属于lp用户组,或具有sudo权限。
总结
通过CUPS系统的 lp 命令和队列管理机制,Linux用户可以高效实现批量打印。从安装配置、队列创建到脚本自动化,这一流程不仅适用于日常文档打印,也适合服务器环境下的日志或报告批量输出。掌握 lpstat 和 cancel 命令,可进一步确保打印任务的可控性与安全性。
以上就是Linux CUPS批量打印的详细内容,更多关于Linux打印管理的资料请关注本站其它相关文章!







