以前实际上简单介绍过基于cups 进行网络打印的处理的,以下是一个相对完整方案,可以实现相对完整的管理(也比较简单,但是基本够用)
参考图
备注: 以上扩展支持了多端,通过基于cups 管理多个打印机,默认cups 可以支持text,image,pdf 打印,为了方便实现office 周边的打印,包含了一个文档转换服务
(方案还是比较多的,比如基于liboffice,但是如果想实现比较可靠的服务,建议实现已给比较可靠的office 转换服务),同时基于cups 协议方便的管理,我们可以进行
打印机状态管理(在线状态,job状态,打印统计分析),对于文档存储我们可以直接使用s3(minio 就不错),当然为了维护一些配置以及完整业务管理,我们可以使用
一个db 数据库进行存储,对于打印服务我们可以直接基于cups 提供的ipp 客户端sdk 进行操作,好处还是很明显的,可以集中化管理打印机,同时维护以及打印管理都比较简单,不需要对于每个打印机使用不同的管理客户端了
参考资料
https://www.cups.org/
https://openprinting.github.io/cups/
https://github.com/openprinting/cups-filters
https://github.com/OpenPrinting/cups
https://datatracker.ietf.org/wg/ipp/documents/
https://www.pwg.org/ipp/everywhere.html
https://www.ibm.com/docs/en/i/7.1?topic=concepts-internet-printing-protocol-server#rzaluippserver
https://en.wikipedia.org/wiki/Internet_Printing_Protocol
https://www.cnblogs.com/rongfengliang/p/17321567.html