c# - Zebra ZPL 自定义 header - 打印机解释

标签 c# zebra-printers zpl zpl-ii

我有以下 zpl 发送到打印机。我试图了解“标题”部分是如何准确解释的,或者为什么它是必要的。 header 中引用的 mmf 文件已加载到打印机的内存中。我可以将 zpl 发送到打印机,它会毫无问题地工作,但我也可以完全删除它,而不会影响输出。

我在 Zebra 的文档中找不到有关 [CARD] 和 [GRAPHIC] 参数的任何内容,也找不到有关如何从打印机内存中调用内容(除了使用 ^XG 之外)的内容。

^XA
^LH20,10
^LT-20
^SD00
^MD00
^POI
^LS240
^FWN
..begin header in question
[CARD]
SlotID=1
OrgName=C:\mypath\myfile.mmf
CardSize=4096000
Description=mytest
FontIndex=0
BmpIndex=1
FontPlugin=ZEBRADL
GraphicsPlugin=ZEBRADL
UnicodeProportTables=0
[GRAPHIC0]
Name=C:\mypath\mygif.GIF
Width=72
Height=250
Downloaded=1
ReallyDownloaded=1
PictId=1
DownloadId=1
DownloadSize=3062
RecallEsc=^FT{x},{y+250}^XGE:{if(ExportingToForm()&&VarID()>=0)}{ZebraFN("Something")}{else}Somethingelse{endif},1,1^FS\n

 ...more actual zpl

为什么 header 的 [CARD] 和 [GRAPHIC0] 部分是必需的?它们是旧格式遗留下来的吗?我通过网络上的静态 IP 向打印机发送命令数据,有没有办法格式化这些 header 以便打印机接受它们?

最佳答案

CARD 和 GRAPHIC 不是 ZPL,打印机会忽略它。您必须注意的是这些部分中的 ^ 和 ~ 字符,因为打印机会尝试解释它们。所有 ZPL 命令都以这些字符(或等效的二进制字符)开头。

这些其他部分可能来自 ZDesigner 或其他 ZPL 生成工具,通常会在该工具将 ZPL 发送到打印机之前进行处理。

至于格式化它们以便打印机可以接受它们吗?不 - 它们只是打印机无法识别的命令。

如果您有一个非常简单的格式,例如:

^xa^fo100,100^a0n,50,50^fdHello World^fs^xz

您可以在之前、之后以及中间的某些位置插入文本,而无需更改打印机打印的内容...

这被忽略^xa额外的东西在这里无关紧要^fo100,100^a0n,50,50^fdHello World^fsblah blah blah^xz在此之前的xz导致打印

仍然会打印。

你甚至可以在上面插入回车符,这并不重要。

关于c# - Zebra ZPL 自定义 header - 打印机解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26126359/

相关文章:

c# - Razor 语法 : Trouble figuring out nested statements and variable scope

c++ - Qt:打印原始文本

c# - 从网页中读取文本字符串

c# - 解析具有许多(数百万)行的大型(> 4GB)文本文件的最佳(速度)方式是什么?

javascript - 从javascript获取默认打印机名称?

java - zpl 2 不打印土耳其语字符

status - 当我通过串口向 Zebra 打印机发送 ZPL 命令时,它是否会返回消息?

java - Zebra GK420d ZPL 打印机通过 USB 在 Java 中的状态

ZPL - 我们如何控制 ^BC(代码 128)条形码的宽度

c# - TPL 如何知道线程是否要求更多工作?