【问题标题】:Edit .prn file for printing it in C#编辑 .prn 文件以在 C# 中打印它
【发布时间】:2019-12-09 14:36:26
【问题描述】:

我下载了 ZebraDesigner 3 来创建一个自定义标签,其中包含我写“Hello World”的文本字段。

然后我想通过“打印到文件”来获取它的源代码,但是当我用任何编辑器打开它时,我找不到我之前写的内容(Hello World)。

我想做的是创建一个标签,其中包含一些变量的文本字段,因为它们将从我的 C# 应用程序中获取值。

这是我从 .prn 文件中得到的(通过打印到文件功能创建的文件)

^XA
^MMT
^PW639
^LL0320
^LS0
^FO192,128^GFA,01792,01792,00028,:Z64:
eJzt0jFOAzEQBdCxXLjzXsBarjEFYq/kdBRRAhfIebYcxAE4ArMXQKZzgdaMhygOiSKElAKkHRe70iu88/8CLPMfhuUARnmLJhmSJ4L/laFJ9uGS2fHqFuzo4NQ6wtgRBBccbMwLul2zIWEckpopj69489ZsmzFus5otTzMO895K4XyLMa/By7jnKeH9phkHjBy+DCbG2B9sIo8r7tU6eCdM/eE+NfJqHlaE3HaYyqwmnxKuZgQ/mkQ9nhmD7lDtdAdmr7tXk92p7S62z8xmkyUzwvXdUdYfmrX8SkmyppZ17ShrR9WkI/rWUcfabTXpllq3yyzzV+cTr8C3dA==:ED50
^PQ1,0,1,Y^XZ

如何从 C# 更改这些文本字段?

【问题讨论】:

  • 您最好查看 ZPL 文档。从样品的外观来看,它可能打印为图形。从旧的 ZPL 文档中我发现:“^GF(图形字段)命令允许您将图形字段数据直接下载到位图中。此命令遵循任何其他字段的约定,这意味着此命令包含字段方向。图形字段数据可以放置在位图空间内的任何位置。"
  • 这肯定是标签的 ZIP 压缩图片。这就是驱动程序产生的 - 你不能责怪它,将随机文档从随机 Windows 应用程序转换为一系列有意义的数据字段是非常困难的。如果您需要这些,您需要在 ZPL 中自己从头开始创建标签模板,而不是依赖 Windows 打印。
  • @GSerg 够公平的!不过感谢您的帮助,至少现在我会专注于自己创建它。
  • 您使用的是什么打印机驱动程序?你试过Generic / Text only驱动吗?
  • @DelphiCoder,我安装了 GC420t (EPL) 和 ZPL one 的打印机驱动程序

标签: c# .net zpl


【解决方案1】:

"Print to file" feature 将标签 image 发送到 Zebra 驱动程序,Zebra 驱动程序将其转换为图片,对其进行编码和 ZIP 压缩,并生成一个 ZPL 文件,其中唯一的有效负载是该单张图片(以及设置标签尺寸和打印数量的几个补充命令)。你不能责怪驱动程序,将随机文档从随机 Windows 应用程序转换为一系列有意义的数据字段是非常困难的。

文件中的有效载荷命令是

^GFA,01792,01792,00028,:Z64:
eJzt0jFOAzEQBdCxXLjzXsBarjEFYq/kdBRRAhfIebYcxAE4ArMXQKZzgdaMhygOiSKElAKkHRe70iu88/8CLPMfhuUARnmLJhmSJ4L/laFJ9uGS2fHqFuzo4NQ6wtgRBBccbMwLul2zIWEckpopj69489ZsmzFus5otTzMO895K4XyLMa/By7jnKeH9phkHjBy+DCbG2B9sIo8r7tU6eCdM/eE+NfJqHlaE3HaYyqwmnxKuZgQ/mkQ9nhmD7lDtdAdmr7tXk92p7S62z8xmkyUzwvXdUdYfmrX8SkmyppZ17ShrR9WkI/rWUcfabTXpllq3yyzzV+cTr8C3dA==:ED50

,解压到

那里没有太多可编辑的内容。

为了手动实现相同的,你会写:

^XA
^MUm
^FO10,10^A0,10^FDHello World^FS
^MUd
^XZ

【讨论】:

  • 是的,我知道该标签中没有太多可编辑的内容,但这只是一个示例,因为我有一个“更复杂”的标签,其中我有一些文本字段作为固定数据,并且其他人应该是可变的(从 C# 应用程序分配值)。有什么方法可以解压图片获取ZPL码?
  • @AlessioRaddi ZPL 代码,没有。图像包含最终渲染的位图。
  • 抱歉这么固执,但是没有办法从“打印到文件”中解压缩 ZPL 代码,对吧?
  • @AlessioRaddi 您从“打印到文件”得到的结果 ZPL。只有文本“Hello World”被转换为位图而不是 ZPL 文本命令,不管怎样
【解决方案2】:

首先,当您创建标签文件布局并引入文本时,您将只需要使用 Zebra 打印机字体。在字体样式选项卡中选择"Show printer fonts only"。使用此选项,所有文本都将保留为文本,并且不会转换为图形图像。

第二部分是您使用的驱动程序。您需要使用ZPL printer driver 而不是EPL. 您通过选择打印到文件导出,或者您创建一个假端口,您将其定向到一个txt 文件。打印到文件选项将创建 PRN 文件,但内容是 100% ZPL。

我这样做了几次,它正在工作。我创建了许多具有复杂布局和变量的标签,并且在导出它们时从未遇到任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    相关资源
    最近更新 更多