使用Zebra打印机中存储的图像在vb.net中创建标签

时间:2013-05-23 13:51:23

标签: vb.net printing zpl

有没有办法在以下代码中使用存储在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

但我不知道如何把两个代码放在一起,任何想法?

2 个答案:

答案 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

来源:https://support.zebra.com/cpws/docs/zpl/zpl_manual.pdf