调用SMT.ZEBRA.dll斑马打印机库文件,打印条形码。
效果图:
准备:1. 斑马打印机 型号GT820。
2. 斑马打印机驱动。
3. 库文件SMT.ZEBRA.dll 和 SMT.ZEBRA.dll的依赖库文件Fnthex32.dll。
见下方链接。
步骤:1。调试打印机,安装支持打印机的ZPL驱动(因为所打印标签的模板使用ZPL指令编写的,所以必须选择ZPL)。
打印机属性->测试页,打印成功说明调试成功。
2。注册 SMT.ZEBRA.dll 文件, cmd 右键->管理员权限运行-> regram 路径/SMT.ZEBRA.dll 。
Fnthex32.dll库文件貌似不用注册,详见demo中readme.txt。
3。给予DLL文件运行权限。右键DLL文件->属性->安全->编辑->添加->everyone->确定->完全控制->确定。
4。项目引用 SMT.ZEBRA.dll ,Fnthex32.dll库文件也不用引用。
5。 上代码:
Imports System.Drawing.Printing.PrinterSettings
Imports System.Drawing.Printing
Imports System.Text.RegularExpressions
Public Class TestZebraPrinterForm
Private Sub TestZebraPrinterForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim stringCollection As PrinterSettings.StringCollection = PrinterSettings.InstalledPrinters '’得到已安装的打印机名字。
Dim strPrinterName As String = String.Empty
Dim regex As Regex = New Regex("^.*ZPL.*$") '’new 一个正则表达式模板 ,^.*ZPL.*$ 代表包含ZPL的任意字符串。
Dim itemValue As String = ""
For Each strName As String In stringCollection
strPrinterName = strName.ToString()
Printer_ComboBox.Items.Add(strPrinterName) '’添加到组合框。
If regex.IsMatch(strPrinterName) Then '’判断是否满足模板。
itemValue = strPrinterName
End If
Next
Printer_ComboBox.SelectedText = itemValue
End Sub
Private Sub print_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles print_Button.Click
''实例化一个打印类
Dim zebraPrinter As Smt.Zebra.ZebraPrinter = New Smt.Zebra.ZebraPrinter()
For i = 0 To 2
Dim str1 As String = "名称1:" + "内容"
Dim str2 As String = "名称2:" + "内容"
Dim str3 As String = "名称3:" + "内容"
Dim str4 As String = "名称4:" + "内容"
Dim str5 As String = "名称5:" + "内容"
Dim str6 As String = "名称6:" + "内容"
''定义一个标签值
Dim barcode As String = "A" + "00000000" + i.ToString
''按照格式,格式化成新的字符串
'’str1 = String.Concat(" ", "^", " ", "~", str1) ''双排条形码
Dim Str As String = String.Concat(str1, "^", str2, "^", str3, "^", str4, "^", str5, "^", str6, "~", barcode) '单排条形码
''barcodeConfig.TXT:模板配置文件 或barcodeConfig.PRN //一定要大写
''Printer_ComboBox.Text:打印机名称
Dim Path As String = "barcodeConfig.TXT"
zebraPrinter.PrintLabEx(Path, Str, Printer_ComboBox.Text)
Next
End Sub
End Class
下面是打印模板文件barcodeConfig.TXT。
^XA //开始
^PW1000 //条码最大宽
^MD30 //颜色深度
^LH0,0
#CN_DATA1#;|宋体|20|18|^FO100,60 //占位符 //FO横纵坐标
#CN_DATA2#;|宋体|20|18|^FO520,60 //占位符
#CN_DATA3#;|宋体|20|18|^FO100,130 //占位符
#CN_DATA4#;|宋体|20|18|^FO520,130 //占位符
#CN_DATA5#;|宋体|20|18|^FO100,200 //占位符
#CN_DATA6#;|宋体|20|18|^FO520,200 //占位符
//打印条码 //BY缩放大小,条码高度 //(^BCN,120,Y,N,N)打印不旋转的高度为100点的Code128条码。
^FO280,320^BY4.0,3.0^BCN,120,Y,N,N,A^FD#ID1#^FS
^PQ1,0,1,Y
^XZ //结束
十分感谢,参考链接 https://blog.csdn.net/u010028869/article/details/39809379
另一种方法:https://www.cnblogs.com/zh7791/p/6905130.html
下面是demo链接(包含两个库文件,驱动),给需要的朋友们。
https://download.csdn.net/download/weixin_43553234/10849813