我有以下 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/