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

2020-05-29 16:25:29 +08:00
 vansje

前几天去客户那里,刚刚给对接上飞鹅 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

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

2575 次点击
所在节点    程序员
12 条回复
seabee
2020-05-29 16:28:22 +08:00
见识过类似的情况,心疼楼主一下
JingKeWu
2020-05-29 16:30:15 +08:00
买个 Lodop 解决问题
winnerczwx
2020-05-29 17:18:54 +08:00
变更需求导致工作量变多,楼主不加钱吗
oott123
2020-05-29 17:19:05 +08:00
难道不是加钱解决
zhujinliang
2020-05-29 17:46:52 +08:00
写的数据是 ESCPOS 格式,很多地方有介绍。
纯 ESCPOS 指令支持的排版格式有限,好处是数据量小,适合串口或蓝牙这种速度慢的端口。想打印复杂的板式还是用位图指令或者装驱动作为普通打印机用。
这种打印机我们接过很多,串口或蓝牙的直接写端口,USB 的往 Bulk EP 里写就可以
xuxiaoshuo
2020-05-29 18:22:58 +08:00
同样的经历呀。。话说怎么确保打印机收到 并打印呀
yutian33
2020-05-29 18:43:34 +08:00
关注一下,刚折腾好飞鹅的,也是被反馈价格高 。。。
sunorg
2020-05-29 18:45:45 +08:00
你自己弱势了,要么加钱,要么拒绝。
cz5424
2020-05-29 22:59:49 +08:00
对接过某宝的打印机服务器,不过不是小票的。直接给了 api 文档,发 post 就能打印,支持 html,无脑调格式
bitmin
2020-05-30 15:37:36 +08:00
我之前客串做过打印,因为买的热敏打印机连 ESCPOS 都不支持,就直接用 Java 写 Printable 打印,用 websocket 接收打印指令。
Erroad
2020-05-30 17:57:27 +08:00
如果是我,我会告诉他,这两个是完全不同的东西,先加个一倍价钱,再慢慢砍
fykang
2020-06-04 18:29:34 +08:00
这个我写过,一个 esp32 联网模块,热敏打印机和 esp32 用串口通讯,云端通讯用 mqtt 协议。用 c/c++的 arduino 框架写嵌入式。和你刚好相反,我是先写了这个后来团队嫌不够美观要换商用的飞蛾打印机

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/676745

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX