编辑 .prn 文件以在 C# 中打印它

Edit .prn file for printing it in C#

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

然后我想通过"print to file"获取它的源代码,但是当我用任何编辑器打开它时,我找不到我以前写的东西(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# 更改这些文本字段?

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

你文件中的payload命令是

^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

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

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

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