openwrt在Raw模式无打印机驱动下实现cups打印中文文档
本方法支持armv7,arm64和x86_64设备。
先登录cups的web页面:http://ip:631,添加一个打印机,
点选Make:Raw后,点Continue
然后点选Model:Raw Queue(en)。
点击Add Printer。
最后设置这个打印机为默认设备。(Maintenance: Set As Server Default)
因为使用了Raw模式,所以不需要打印机驱动!
但是Raw模式,只能打印英文文本。
要实现正确打印中文文档,需要使用libreoffice把目标文档转换成pdf格式。
这里用到了linuxserver/libreoffice的docker镜像。
先去luci-app-dockerman里配置镜像加速器(解决无法拉取镜像的问题),添加:
重启docker。
然后自行去准备几个常用的中文ttf字体文件。
把字体复制到/opt/fonts目录里.
再把需要打印的文档都复制到/opt/libreoffice目录里。
执行命令:
docker run -d \ --name=libreoffice \ --security-opt seccomp=unconfined `#optional` \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -p 13000:3000 \ -p 13001:3001 \ -v /opt/fonts:/usr/share/fonts \ -v /opt/libreoffice:/mnt \ --restart unless-stopped \ linuxserver/libreoffice:7.2.2.2-r2-ls48
docker成功启动后,执行下面的命令来重置字体,使支持中文:
docker exec -it libreoffice fc-cache -f -v
然后用下面的命令登录docker镜像的shell环境:
docker exec -it libreoffice /bin/sh
现在就能执行转换命令:
libreoffice --headless --convert-to pdf /mnt/input.docx --outdir /mnt/output
转换完成后,ctrl+d退出docker的shell环境,执行打印命令:
lp /mnt/output/*.pdf
双面打印命令(长边翻转):
lp -o sides=two-sided-long-edge /mnt/output/*.pdf
想要批量打印,就写个for循环脚本遍历即可。
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包