【问题标题】:Comment line in ZPL codeZPL 代码中的注释行
【发布时间】:2014-10-16 14:32:32
【问题描述】:

我想在 ZPL 代码中注释行,例如:

^XA
^MMT
^LL0531
^PW1280
^LS0
^FT81,528^A0B,29,28^FH\^FDTEXT^FS               
// ^FT336,495^A0B,29,33^FH\^FDEAN^FS^FX         ----
//^BY3,2,42^FT384,492^BEB,,Y,N                  Commented lines
//^FD789690466123^FS                            ----
^PQ1,0,1,Y^XZ

我想要这个,因为有时我的变量为空并且不想打印条形码。 这个有可能?或者不打印条形码的最佳方法是什么?

【问题讨论】:

  • 您是否有理由不能有条件地跳过发送 ^BE 命令?

标签: zebra-printers zpl


【解决方案1】:

简短的回答是“无法完成”。

评论指示符是^FX,之后字符会被忽略 - 评论结尾是 any ^ or ~ command,这使得 ^FX 旁边的无用。

除非添加了“block-comment”命令,并带有特定的 start/end-block-comment 助记符集,否则很抱歉 - 你不走运。

然而,所有的一切都相当丢失。

^XA
^FT336,495^A0B,29,33^FH\^FDEAN^FS^FX
^BY3,2,42^FT384,492^BEB,,Y,N
^FD789690466123^FS
^MMT
^LL0531
^PW1280
^LS0
^FT81,528^A0B,29,28^FH\^FDTEXT^FS               
^PQ1,0,1,Y^XZ

将识别要注释掉的行。

^FT336,495^A0B,29,33^FH\^FDEAN^FS^FX
^BY3,2,42^FT384,492^BEB,,Y,N
^FD789690466123^FS
^XA
^MMT
^LL0531
^PW1280
^LS0
^FT81,528^A0B,29,28^FH\^FDTEXT^FS               
^PQ1,0,1,Y^XZ

将忽略它们,因为 ^XZ^XA 之间的数据被忽略。

【讨论】:

    【解决方案2】:

    我在代码中将行构建到一个字符串变量并将我的 cmets 放在连接中 - 然后将整个字符串发送到 cmets 将留在后面的打印机。

    StringBuilder sb = 新的 Stringbuilder(""); sb.append("^XA"); sb.appendLine("^MMT"); sb.appendLine("^LL0531"); // sb.append("此行将被注释掉"); // sb.append("此行将被注释掉"); // sb.append("此行将被注释掉"); sb.appendLine("^PQD,0,1,Y^XZ"); 字符串 s = sb.toString();

    类似的东西。您可以使用 'if-else' 语句而不是 cmets 来确定它是否保留在字符串中。

    【讨论】:

      【解决方案3】:

      @芒果

      简短的回答是“无法完成”。

      注释指示符是 ^FX,之后字符将被忽略 - 但注释结束是任何 ^ 或 ~ 命令,这使得 ^FX 旁边无用。

      不一定。我发现 ^FX 在注释掉变量以放入测试信息时非常有用。在这种情况下,由任何 ^ 或 ~ 命令触发评论结束实际上很有用。

      以变量作为字段数据。

      ^XA^PQ1
      ^FO12,15^A0N,36,33^FDTitle^FS
      ^FO210,15^A0N,36,33,^FDInfo^FS
      ^FO750,15^A0N,165,150^FD|Variable.Number|^FS
      ^FO90,60^BY4,3.0^BCN,90,N,N,Y,N^FD|Variable.Number|^FS
      ^XZ
      

      已注释掉测试信息和变量。

      ^XA^PQ1
      ^FO12,15^A0N,36,33^FDTitle^FS
      ^FO210,15^A0N,36,33,^FDInfo^FS
      ^FO750,15^A0N,165,150^FDTestNumber^FX|Variable.Number|^FS
      ^FO90,60^BY4,3.0^BCN,90,N,N,Y,N^FDTestNumber^FX|Variable.Number|^FS
      ^XZ
      

      这使得可以在调整格式的同时使用测试信息并且不会丢失原始变量名称。您也可以使用它来制作这样的信息 cmets:

      ^FX This is a test label.
      
      ^XA^PQ1
      
      ^FX This is the title.
      ^FO12,15^A0N,36,33^FDTitle^FS
      
      ^FX This is the info.
      ^FO210,15^A0N,36,33,^FDInfo^FS
      
      ^FX This is the number.
      ^FO750,15^A0N,165,150^FD|Variable.Number|^FS
      
      ^FX This is the barcode.
      ^FO90,60^BY4,3.0^BCN,90,N,N,Y,N^FD|Variable.Number|^FS
      
      ^XZ
      

      【讨论】:

        【解决方案4】:

        一种方法是不发送与您不想打印的字段相关的命令行。对于您提供的示例,只需删除(不发送)以 // 开头的三行。

        【讨论】:

          猜你喜欢
          • 2017-02-28
          • 2010-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多