注:
由于工作需要, 也是第一次接触到打印机的相关内容, 凑巧, 通过找了很多资料和帮助后, 也顺利的解决了打印标签的问题
(标签的表面信息[二维码,条形码, 文字] 和 RFID标签的EPC写入)
解决方案
1. 由于开发准备的前期工作, 手里面是有很多的原厂API,
通过阅读大概阅读了这些pdf文档(尽管看不懂...) ,大概知道原理是通过ZPL命令去调用DLL发送至打印机执行。
所以,顺藤摸瓜, 我直接就去搜索ZPL的操作命令, 自己尝试了编写ZPL命令操作打印机。在这里,先讲一下什么是ZPL命令~~
Zebra Programming Language (printer language) 简称ZPL 是由斑马公司发明的一种用于打印机通信的命令。
网络上搜索的相关的ZPL命令, 大概是都是这样, 前面一个 ^ 符号 后面不同的英文及参数组成, 就能形成特殊的ZPL命令
在打印机的纸张上显示具体的内容, 下面也会讲到, 如下图:
这里列出部分代码(后面会给出源文件)
实现:
1.先将ZPL命令用字符串拼接好 如下图中的StringBuilder中拼接的字符串,(图1) (类似^XA ^XZ 这些都是ZPL命令里面的一些操作, 百度一下ZPL命令会有一些基本的说明)
2.然后调用引用的DLL(图2) 进行发送命令即可。
执行到的RawPrinterHelper.SendStringToPrinter方法。
这就是测试打印的一些内容:
可能你看到这里, 还是觉得很模糊, 没关系, 下面有好东西(不仅是源码)...
————————————————————————华丽的分割线—————————————————————————
如果是要自定义标签的各种样式, 内容, 是不是要不停的去翻查ZPL的文档? 去掌握ZPL如何使用呢?
我想想那样还是太麻烦了。
毕竟现在有很多工具可以设置标签模板操作打印机, 那么他们的原理是什么呢?
然后经过查找, 才发现, 原来那些标签打印机设置的模板,原理也是通过命令发送到
打印机去执行生成指定的内容,那么问题就来了, 是不是这些标签模板都可以找到
它们的ZPL指令呢, 是的没错,确实有!
注: 大部分打印机都支持ZPL命令
下面我用Bartender9.4的破解软件演示 ( 破解的版本网络上很多地方提供下载, 现在你可以看看先怎么做)
1.打开Bartender9.4, 会看到下面的界面
2.选择一个新的标签格式即可, 一直下一步, 直到进入主界面
3. 然后尝试在界面中拉动一个条码标签, 如图
4.然后点击打印按钮 , 实际上这一步就是把这个模板的ZPL命令保存到本地的文件中。
5.勾选打印到文件。
6.保存到本地即可
好了, 接下来,我们打开本地文件, 看下到底是怎么个回事,
像图中的 <xpml>标签 <page>标签, 这些应该是软件里面的数据格式, 肯定没用处的, 所以我们找到需要的内容即可。
然后把刚才的字符串复制在测试的程序中。
然后调用具体的方法(项目的测试文件下载会有明确的说明) , 就可以顺利打印出来了,如图。
注: 由于标签纸的大小问题, 在设置标签模板的时候, 我是选定了标签的长宽, 如果出现打印不出来
或者显示不全的, 可以在标签模板设置好长宽和条码的位置即可
需要源代码请发送至本人邮箱, zhouhaogg789@outlook.com, 看到会及时回复!