基于 Docker 定时打印文件

先说背景,喷墨打印机有个很大的缺点,当长时间不打印时特别容易阻塞打印头,家用的打印任务还没那么多,所以就想配置个打印任务,隔三岔五打印个测试页

然后就是今天的主角 CUPS, CUPS 是 linux 系统下用来管理打印机/打印任务的一个工具,更多介绍可以参见官网

所以先启动一个管理任务,假设执行目录在 /opt/data,这也是 CUPS 的默认映射路径:

docker run --name printer -d --restart always -p 631:631 -v /opt/data:/etc/cups ydkn/cups:latest

启动完成后打开 https://{你的ip}:631/admin,依次找到 Administration -> Printers -> Add Printer,默认用户名密码 admin/admin,打印机类型可以直接选 互联网打印协议 (ipp),输入 ipp://{打印机的ip}

至此打印机就算配置完成了

测试一下基于 Docker 打印文件,先在执行目录 /opt/data 下添加一个测试用的打印文件 testfile.pdf :

docker exec printer lp /etc/cups/testfile.pdf

正常情况下,此时在 CUPS 后台 https://{你的ip}:631/jobs 列表里就应该已经能看到打印任务了

之后基于 crontab -e,加个定时任务 0 15 */3 * * docker exec printer lp /etc/cups/testfile.pdf 即可以实现每三天下午三点自动执行打印任务了

One comment

  1. 感谢作者的工作,在你的基础上,经过我的研究,发现debian自带了一个pdf测试页,所以我们可以不需要再添加测试页,直接执行
    docker exec printer lp /usr/share/cups/data/default-testpage.pdf
    就行了,这个测试页其实也是在CUPS的Web管理界面中,使用打印测试页命令所使用的测试页

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注