先说背景,喷墨打印机有个很大的缺点,当长时间不打印时特别容易阻塞打印头,家用的打印任务还没那么多,所以就想配置个打印任务,隔三岔五打印个测试页
然后就是今天的主角 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
即可以实现每三天下午三点自动执行打印任务了
感谢作者的工作,在你的基础上,经过我的研究,发现debian自带了一个pdf测试页,所以我们可以不需要再添加测试页,直接执行
docker exec printer lp /usr/share/cups/data/default-testpage.pdf
就行了,这个测试页其实也是在CUPS的Web管理界面中,使用打印测试页命令所使用的测试页