常见问题 TBarCode DLL / TBarCode Library
如何在 Data Matrix 中使用 Macro 06
如何在 Data Matrix 中使用 Macro 06
示例:您希望将以下数据编码到一个 26x26 模块的 Data Matrix 符号中(下方数据已包含 GS、RS 和 EOT 的转义序列):
[)>\x1e06\x1dY2004010400000XY\x1dP13590636\x1d12V688438456\x1dLSYYDDD000000000\x1e\x04
问题
这无法容纳在 26x26 矩阵中。26x26 符号的容量为 88 个数字字符或 64 个字母数字字符。但此处的数据字符串混合了字母数字字符、部分特殊字符以及不可打印字符(GS、RS、EOT)。默认情况下,我们不使用 Macro 模式,而该模式本可以节省空间。
字母数字字符或连续数字的编码效率高于不可打印范围(ASCII 00 - 20)内的 ASCII 字符——另请参见 C40、TEXT、Digit pairs 和 BASE256 模式。
解决方案
您可以使用 Macro 06 模式来节省符号中的空间:
BCSet_DM_Format (pBarCode, eDMPr_Macro06)
启用 Macro 06 后,请按以下方式设置条码数据(不含头部和尾部):
[)>\x1e06\x1d
Y2004010400000XY\x1dP13590636\x1d12V688438456\x1dLSYYDDD000000000
\x1e\x04
结果:数据流中的头部 [)> + RS + 06 + GS 和尾部 RS + EOT 将由条码阅读器自动插入(无需在编码数据中手动设置)。这样即可容纳在 26x26 矩阵中,因为使用 Macro 06 时,编码器所需的空间/内部码字比不使用时更少。