是否有办法在以下代码中使用存储在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
但是我不知道如何把这两个代码放在一起,你知道吗?
如果图形是静态的,并且不会根据用户输入等而改变,那么您可以直接从中创建一个.grf。我想最简单的方法是将图像导出为位图,在paint中打开,保存为。pcx文件,然后在ZTools中打开它以转换为十六进制。grf文件。然后,您可以将图形与其他ZPL代码一起发送到打印机。
关于如何做到这一点的示例,请参考ZPL编程指南,该指南可从http://www.servopack.de/support/zebra/ZPLbasics.pdf 获得。您将在第36页找到一个解释创建和打印.grf文件的示例,以及向第63页的标签发送.grf和文本的示例。
听起来您的图像已经存储到打印机上了。如果是这样,它的文件名(存储在打印机上的文件名)应该类似于'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。
来源:https://support.zebra.com/cpws/docs/zpl/zpl_manual.pdf .