V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vansje
V2EX  ›  程序员

(转帖)论一次坎坷的小票打印机对接开发

  •  1
     
  •   vansje · 2020-05-29 16:25:29 +08:00 · 2796 次点击
    这是一个创建于 1637 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前几天去客户那里,刚刚给对接上飞鹅 4G 打印机,恩,很成功,用户说小票的格式也很好!

    测试完成后,用户说,飞鹅的有点小贵(嗯?前几天不是说很便宜么!回答:嗯吧,我只能认同,反正我又不能打客户),想换成 USB 的打印机,毕竟便宜,我(此处表示客户)查了一下某宝,才 80 多块钱,你(此处指我)去买一个测试一下,我们更换成 USB 的吧!

    我感觉顿时有一万头大象奔过我的小心脏。。。

    因为这个项目中的打印机有 N 个,分布在不同的的地方,订单的打印靠一个中心 WEB 服务发起打印指令,指定某个打印机进行打印。。。。当然是飞鹅 4G 好用了,就一个接口就 OK 了。。。然而,如果换成 USB 的,那还得单独开发对应的打印控制软件,然后 N 个打印机会连接到 N 个电脑上(地域位置不同),然后还需要增加总线订阅消息到中心服务器,这样才能完成打印消息的执行。。。。用户就一句话,就会让工作变得麻烦很多,然后用户觉得其实是很简单的意见事情,飞鹅 4G 小票打印机可以打印,USB 的不照样可以打印么,有什么不同么?

    然并卵,作为弱势的乙方(还是个自由职业者),你是没有脸反驳的(在用户不懂技术的情况下)。因为用户压根就不懂什么叫通信总线,什么叫订阅,什么叫分发,什么叫异步,什么叫什么~~

    那就迎着头皮上吧,买了个芯烨 XP58IIH 型号的热敏打印机,然后,然后,然后特么的官网的 DEMO 一塌糊涂。。。。我能说啥(你啥也不能说,你不能)

    开始看官网文档的时候,给了几个 demo,也没说安装驱动啥的,然后看开发文档,特么的全是 C++的导出函数,这个也没什么,然后 DLL 导入,然后开始调用接口,然后测试了一下也可以打印,然并卵,也就只能停留在打印,连个换行都得是 0X0A 来完成。。。我大概看了一下,原来是专门的一种打印指令。。。。结果浪费半天,就只能打个 hello world,连个基本排版的说明文档都木有,是真木有,反正我是没看到。。。某宝上的商家,让我去官网找。。。我 TM 醉了,,,尽管我酒量很高,嗯,很好。

    我尝试着安装驱动,嗯,发现这驱动安装完成后。。。就是一个普通打印机。。。然后一下就顿悟了,这不就是普通打印么。。。。

    然后新键了一个 Winform,然后默认的打印组件三板斧,新键窗口,拖拽组件,配置属性。。。然后的然后。。。后来的后来。。。就是写了点测试代码,着重调整了一下样式。。。再后来,也就是现在了,距离写这个感想 10 分钟前,我把打印测试的预览搞好了,效果可以,实际打印出来,热敏纸上的粗体稍微有点不如预览的效果好点,也差不多。

    然后明天开始搞 Rabbitmq 的总线,然而用户是真不知道啥是 rabbitmq

    原帖链接: https://eleduck.com/posts/eYgfQp

    电鸭社区(原一早一晚社区)欢迎大家关注

    12 条回复    2020-06-04 18:29:34 +08:00
    seabee
        1
    seabee  
       2020-05-29 16:28:22 +08:00 via Android
    见识过类似的情况,心疼楼主一下
    JingKeWu
        2
    JingKeWu  
       2020-05-29 16:30:15 +08:00
    买个 Lodop 解决问题
    winnerczwx
        3
    winnerczwx  
       2020-05-29 17:18:54 +08:00 via iPhone
    变更需求导致工作量变多,楼主不加钱吗
    oott123
        4
    oott123  
       2020-05-29 17:19:05 +08:00 via Android
    难道不是加钱解决
    zhujinliang
        5
    zhujinliang  
       2020-05-29 17:46:52 +08:00 via iPhone
    写的数据是 ESCPOS 格式,很多地方有介绍。
    纯 ESCPOS 指令支持的排版格式有限,好处是数据量小,适合串口或蓝牙这种速度慢的端口。想打印复杂的板式还是用位图指令或者装驱动作为普通打印机用。
    这种打印机我们接过很多,串口或蓝牙的直接写端口,USB 的往 Bulk EP 里写就可以
    xuxiaoshuo
        6
    xuxiaoshuo  
       2020-05-29 18:22:58 +08:00
    同样的经历呀。。话说怎么确保打印机收到 并打印呀
    yutian33
        7
    yutian33  
       2020-05-29 18:43:34 +08:00
    关注一下,刚折腾好飞鹅的,也是被反馈价格高 。。。
    sunorg
        8
    sunorg  
       2020-05-29 18:45:45 +08:00 via Android
    你自己弱势了,要么加钱,要么拒绝。
    cz5424
        9
    cz5424  
       2020-05-29 22:59:49 +08:00
    对接过某宝的打印机服务器,不过不是小票的。直接给了 api 文档,发 post 就能打印,支持 html,无脑调格式
    bitmin
        10
    bitmin  
       2020-05-30 15:37:36 +08:00 via Android
    我之前客串做过打印,因为买的热敏打印机连 ESCPOS 都不支持,就直接用 Java 写 Printable 打印,用 websocket 接收打印指令。
    Erroad
        11
    Erroad  
       2020-05-30 17:57:27 +08:00
    如果是我,我会告诉他,这两个是完全不同的东西,先加个一倍价钱,再慢慢砍
    fykang
        12
    fykang  
       2020-06-04 18:29:34 +08:00
    这个我写过,一个 esp32 联网模块,热敏打印机和 esp32 用串口通讯,云端通讯用 mqtt 协议。用 c/c++的 arduino 框架写嵌入式。和你刚好相反,我是先写了这个后来团队嫌不够美观要换商用的飞蛾打印机
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5579 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:00 · PVG 11:00 · LAX 19:00 · JFK 22:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.