有没有办法在以下代码中使用存储在Zebra打印机中的图像:
Dim g As Graphics = e.Graphics
Dim bc As New BarcodeProfessional
Dim br As Brush = New SolidBrush(Drawing.Color.Black)
Dim blackPen As New Pen(Color.Black, 5)
e.Graphics.DrawArc(blackPen, 10, 10, 70, 50, 130, 100)
g.DrawString("UPC", Arial_6_bold, br, 210, 15)
上面打印了一个弧形和一个“UPC”文本,现在我可以在这里打印一个存储在Zebra打印机中的图像吗?
我发现我可以用这种方式将ZPL代码发送到打印机:
Dim ipAddress As String = "10.3.14.59"
Dim port As Integer = 9100
Dim ZPLString As String = _
"^XA" & _
"^FO50,50" & _
"^A0N,50,50" & _
"^FDHello, World!^FS" & _
"^XZ"
Try
'Open Connection
Dim client As New System.Net.Sockets.TcpClient
client.Connect(ipAddress, port)
'Write ZPL String to Connection
Dim writer As New System.IO.StreamWriter(client.GetStream())
writer.Write(ZPLString)
writer.Flush()
'Close Connection
writer.Close()
client.Close()
Catch ex As Exception
'Catch Exception Here
End Try
但我不知道如何把两个代码放在一起,任何想法?
答案 0 :(得分:3)
如果图形是静态的并且不会根据用户输入等进行更改,则可以从中创建一个.grf。我想最简单的方法是将图像导出为位图,在绘图中打开,另存为.pcx文件,然后在ZTools中打开它以转换为hex .grf文件。然后,您可以将图形与其他ZPL代码一起发送到打印机。
有关如何执行此操作的示例,我将向您推荐ZPL编程指南,可在http://www.servopack.de/support/zebra/ZPLbasics.pdf
获取您将找到一个示例,说明如何创建和打印.grf文件(第36页),以及将.grf和文本同时发送到标签的示例。
答案 1 :(得分:3)
听起来您的图像已存储到打印机中。如果是这样,它的文件名(存储在打印机上)应该是'E:MYFILE.GRF'。您可以使用ZPL命令 ^ XG 来调用存储的图形。因此,通过发送以下ZPL,图形应在文本“Hello,World!”之后打印:
"^XA" & _
"^FO50,50" & _
"^A0N,50,50" & _
"^FDHello, World!^FS" & _
"^XGE:MYFILE.GRF,1,1^FS" & _
"^XZ"
如果您的图像尚未存储,您可以通过~DY命令存储GRF文件,但通过Zebra Setup Utilities下载对象要容易得多:http://www.zebra.com/us/en/products-services/software/manage-software/zebra-setup-utility.html。