大佬们,请教一下关于标签打印的方案

2024-08-29 14:33:28 +08:00
 dys0327
目前的技术栈是前端 element plus ,Vue3+TS ,后端 SpringBoot ,数据库 mysql

需要做一个标签打印功能(仓库使用):
1.支持设计标签模板(跟快递面单类似,有发货人,收货人,地区、箱数、商品信息、二维码等,模板样式自己设计,可能不同客户模板不同)
2.在系统中查询数据后,通过调用对应标签模板将指定数据进行批量打印,一条数据填充模板生成一个标签

现有问题:
以前开发系统时的打印功能都是调用浏览器直接选择打印机进行打印,没接触过标签打印的需求,比如标签尺寸 15mm*10mm, 不知道连接标签打印机进行打印是否需要其他操作,网上搜索了了一下,有的文章说标签打印机需要自己把标签数据转换为打印指令,传输给打印机?希望有相关经验的大佬不吝赐教
2830 次点击
所在节点    问与答
34 条回复
okakuyang
2024-08-29 14:58:52 +08:00
最近看见一个人实现了 webUSB 还是啥的用小票机打印
Ranhao
2024-08-29 15:02:14 +08:00
还是用原来 web 打印的方案,打印不同尺寸只是在打印机设置里面新增纸张大小,web 打印预览时选中不同的纸张就好
JamesR
2024-08-29 15:05:38 +08:00
做个 Excel 导出功能得了,有专门的标签设计打印软件 Bartender ,让客户用这个软件去打,这个软件支持通过 Excel 或者连接 MySQL 数据库后打印。
boks
2024-08-29 15:06:24 +08:00
买个精臣的就行
电脑用 usb 连接,手机上可以做成小程序或 app ,使用低功耗蓝牙连接
按文档上操作就行,不会就加群问,他们技术和客服还是挺积极的,我之前做的时候不会原生安卓,他们还帮忙开发了 uniapp 插件
hangzhou
2024-08-29 15:07:36 +08:00
看看这个插件能满足需求吗 vue-plugin-hiprint
datocp
2024-08-29 15:32:55 +08:00
还在用 bartender v9.4,支持 access/excel/mssql/orade/ole db/udl/odbc/文本文件,平时常用 excel 进行变量赋值。

现在常用 LabelSoft ,在条形码长宽比方面可以随意拉动。

一般对于 tsc TTP-244 Pro ,网页打到 15mm*10mm ,要预先设定一张 15mm*10mm 的标签,调用它就能打出这个尺寸。
dys0327
2024-08-29 15:40:37 +08:00
@JamesR #3 之前就是用 Bartender 打印,不是很方便;现在是想要直接在 web 页面查询筛选数据,填充到模板中打印出来
threeBoy
2024-08-29 15:46:55 +08:00
可以通过菜鸟云打印实现,web 端图形界面自定义模板 https://cloudprint.cainiao.com/print/templates.htm?tbpm=3 免费
threeBoy
2024-08-29 15:48:38 +08:00
@threeBoy 生成的模板类似 xml 可以填充数据 通过 websocket 传递给菜鸟云打印组件软件 就可以打印了
dys0327
2024-08-29 15:55:46 +08:00
@boks #4 大概看了下,点了几个商用的标签打印机,貌似都是热敏的,热敏时间久了就褪色了,客户要求不能使用热敏
dys0327
2024-08-29 15:56:24 +08:00
@hangzhou #5 这个看着还不错,我研究研究
Felldeadbird
2024-08-29 15:58:14 +08:00
标签软件可以读 mysql 的。 后端把数据发数据库。 标签软件设置好打印格式。 要打印时软件读取一下数据库现在的内容,就开始自动打印了。

我公司目前是这样操作。
thoo61871
2024-08-29 16:03:34 +08:00
我司是按照尺寸输出成 PDF
web 自动打开 PDF
一页一张标签
然后手动点击打印
thoo61871
2024-08-29 16:05:09 +08:00
标签打印机也是打印机
安装完驱动
你去打印机设置那里设置尺寸
例如 100*100mm
70*20mm
crazytudou
2024-08-29 16:12:14 +08:00
以前做过, 做成标签纸大小的浮窗,直接打印页面。
BingoXuan
2024-08-29 16:21:59 +08:00
我的方案是:直接 html 渲染对应大小后打印,前提是打印机配置好对应的尺寸
matepi
2024-08-29 16:29:30 +08:00
好多年前做过用 mht 模板填充、word 打印的方案
比 html 的优势在于,不管是批量每个小标签连续打印、还是拼接成大文件批量打印,都比 html 浏览器直接打印稳定和效率好不少
tywtyw2002
2024-08-29 17:56:53 +08:00
本地驱动 直接用 zpl 语言打,商用机基本上 ZPL 都是标配。

网页要用 webusb 调用吧。要不就本地启动个 agent ,来接受网页上的命令调用驱动打
xieaoting
2024-08-29 18:07:52 +08:00
@hangzhou 我用这个插件做了一个可编辑模板然后用数据去打印模板的
ArleneCheung
2024-08-29 20:28:51 +08:00
真是问到专业对口了。我是我们公司的嵌入式。

我们公司是专门做标签打印机的,给你列如下几种方式。

一般通用的比较小型的打印机可能不太会内置指令集:CPCL/ESC/ZPL/EPL/TSPL 我列出来的是几种常见的指令集。

CPCL 、ZPL 、EPL 都是斑马公司,ESC 指令集是 EPSON 打印机的。这种都是开源的,可以直接去网上找标准的协议。

在你开发自己 demo 前我可以给你推荐一些调试工具去测试这些指令是否健全。

还有一些国产的做的很精美标签机,非常非常小,打印头为半寸的,这种大多都有自己的 app ,这种一般是把需要打印的样张转化为位图传输给打印机。这种如果你想做上位机驱动可能需要和对应打印机公司的 SDK 对接,比如使用他们现成的 SDK 文件。

看你的需求,那种稍微大一点 2 寸 3 寸,或者大四寸,快递行业,大标签行业一般用 CPCL 指令集 ZPL/EPL 。

小票多用 EPSON 的 ESC 指令集 它的原理为边收边打,那种非常小的因为硬件资源有限可能不会内置指令集,当然国外的我不清楚,毕竟我们公司做标签机+耗材,我也调研了不少国内的竞品,比较小的 半寸 一寸 很少有带指令集的,或者有的话也不是很全。主要也是用指令集中的位图指令。

指令集的原理其实是上位机给打印机发送指令,真正生成图像是在打印机这一端,如果是传输位图,则上层就需要绘制好图像。如果你用指令集方式可能对自己生成图像的难度系数较小,如果是传输图像数据可能会涉及一维码/二维码库的调用,以及数据压缩,数据传输超时等等这些因素。

当然这只是我从嵌入式方向给你的一些建议,毕竟我也不做 SDK ,我也不做 APP ,我只负责打印机固件端开发,能提供的建议只有这么多。有任何指令集相关的疑问,也可以私下问我,因为我是专门做打印机指令集开发的。

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

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

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

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

© 2021 V2EX