0

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

但是我不知道如何将两个代码放在一起,知道吗?

4

2 回答 2

3

如果图形是静态的并且不会根据用户输入等而改变,您可以从中创建一个 .grf。我想最简单的方法是将图像导出为位图,在绘画中打开,另存为 .pcx 文件,然后在 ZTools 中打开它以转换为十六进制 .grf 文件。然后您可以将图形连同您的其他 ZPL 代码一起发送到打印机。

有关如何执行此操作的示例,我将向您推荐 ZPL 编程指南,该指南位于http://www.servopack.de/support/zebra/ZPLbasics.pdf

您将在第 36 页找到解释创建和打印 .grf 文件的示例,在第 63 页找到将 .grf 和文本发送到标签的示例。

于 2013-05-23T14:08:58.547 回答
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

于 2013-05-23T16:56:10.647 回答