rozbo
V2EX  ›  问与答

打印机 api 开源或者二开

  •  
  •   rozbo · Dec 3, 2022 · 1941 views
    This topic created in 1302 days ago, the information mentioned may be changed or developed.

    最近闲着没事干,想给朋友的小店搞个下单审核通过后一键打印的功能。 现在有很多做好的方案,比如易联云等,但这类打印机都有一个问题,就是要走他们的服务端,而由于涉及到隐私,把客户的信息泄漏给第三方显然是完全不合理的,所以,有没有可能的替代方案?

    • 这类打印机有没有可能本地化部署?
    • 如果不能本地化部署,有没有提供 sdk ,不使用他们云端,我自己写个服务端?
    • 如果以上都不行,有没有什么其他奇思妙想能够实现此类需求?

    直接用电脑链接普通打印机然后调用打印机驱动来打印是可行的,但是这样功耗比较高,优化一点就是使用 nas/树莓派 来调度,但这样缺点是部署不易且无法实现云端。

    或者通过抓包分析打印机与服务端的通信协议也可以考虑,但是考虑到 tls 的问题,由于打印机的指令集不是很了解( x86 arm 系列还好)且不一定能提取到系统,所以就不大好做 mitm ,那么问题来了,由于一款打印机与服务端通信是基于 ws/http/tcp 的(即不含 tls 方便分析通讯协议)这样也有可能劫持他自己做个三方服务端来实现。。

    写到这里,我觉得是不是我想复杂了,你们怎么做的呢?你们就不担心客户信息泄露吗

    4 replies    2022-12-03 21:23:48 +08:00
    44670
        1
    44670  
       Dec 3, 2022
    可以考虑玩这种热敏打印模块: https://www.adafruit.com/product/597
    Puteulanus
        2
    Puteulanus  
       Dec 3, 2022   ❤️ 1
    搞个树莓派不是才容易实现云端吗,openwrt 之类的打印服务器应该都有轮子了,写个连接你服务的轮询,或者用内网穿透 /组网之类的跟服务器直接连起来

    劫持现有打印机的请求不也得有个劫持的设备。。
    lmmortal
        3
    lmmortal  
       Dec 3, 2022
    楼上说的应该是基于 CUPS 的,这套系统对热敏打印的支持很差,尤其是国内很多低价的不知名品牌打印机,这些打印机都没有 Linux 驱动。我建议还是在 Windows 下面搞,你可以了解一下 bartender ,它有.Net SDK 可供调用,同时 bartender 的开发商网站上也有对很多打印机的支持驱动,打印机自身官网一般也有驱动
    ZXCDFGTYU
        4
    ZXCDFGTYU  
       Dec 3, 2022
    我个人用的惠普打印机( ns1005w )是支持但不仅限于 ipp 标准协议的,可以自己基于这个去封装自己的业务逻辑实现。客户端->你的业务模块->打印机,客户端与你业务模块通过 http/tcp 通信,业务模块通过构建的 ipp 协议与设备通信。之前我曾经想做过类似的东西,都搞清楚实现方法了,就是因为各种原因没继续去做。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   898 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 20:06 · PVG 04:06 · LAX 13:06 · JFK 16:06
    ♥ Do have faith in what you're doing.