【问题标题】:How to encode a TAB character in a Code128 barcode using only raw ZPL如何仅使用原始 ZPL 对 Code128 条形码中的 TAB 字符进行编码
【发布时间】:2022-02-03 03:59:54
【问题描述】:

过去,我们使用 ZPL 创建 Code39 条码,中间使用 TAB 字符编码,使用类似于以下内容:

*USERNAME$IPASSWORD*

中间的 $I 被我们使用的条形码扫描仪转换为 TAB。

现在我们需要做同样的事情,但使用 Code128。使用 Code39,所有文本都需要大写(除非您使用 Code39Extended,它支持小写字母)。因为有些要编码的数据是小写的,所以我们需要对大部分条码使用 Code128 B,中间切换到 Code128 A 来编码 TAB 字符,然后再回到 Code128 B 来编码最后一部分。

翻阅《ZPL II 编程指南》,应该很简单:

>:username>7{TAB}>6PA55w0rd

>:一开始将子集设置为 B,>7 将子集更改为 A,>6 将子集更改回 B。我遇到的问题(之后还没有找到解决方案差不多一周的搜索)是:如何仅使用文本对 TAB 字符进行编码?

【问题讨论】:

    标签: zpl zpl-ii code128


    【解决方案1】:

    在字段数据之前使用^FH(字段十六进制编码)命令。根据您的示例:

    ^FH_^FD>:username>7_09>6PA55w0rd^FS
    

    其中下划线“_”用作转义字符,09 是制表符的十六进制值。

    另请注意,如果选择的转义字符出现在用户名或密码中,您也需要对其进行转义。

    【讨论】:

      【解决方案2】:

      我尝试了Mark Warren 的建议,但不幸的是,它不起作用。然而,它确实让我回顾了 ZPL II 编程指南,我发现了以下内容,这是我之前忽略的:

      Code 128, Subsets A and C are programmed in pairs of digits, 00 to 99, in the field data string.
      ...
      In Subset A, each pair of digits results in a single character being encoded in the bar code...
      

      因此,由于 73 等于子集 A 中的 TAB,我尝试了以下操作:

      >:username>773>6PA55w0rd
      

      它成功了!

      【讨论】:

        猜你喜欢
        • 2017-06-19
        • 2019-03-13
        • 2012-08-06
        • 1970-01-01
        • 2017-05-23
        • 1970-01-01
        • 2021-04-04
        • 2020-06-06
        • 1970-01-01
        相关资源
        最近更新 更多