FAQ TBarCode OCX
如何将十六进制序列编码为二进制值?
如何将十六进制序列编码为二进制值?
TBarCode V8-V9
要在 TBarCode V9 中编码十六进制值,您必须使用格式为 "\xhh"(hh=十六进制值)的“转义序列”。需要先将十六进制序列(例如来自 DP Premiumadress 的序列)转换为此格式,并启用 TBarCode 的 "EscapeSequences" 属性。下面提供用于此转换的 VBA 示例代码:
' CreateTBCHEXString(sHexValue)
' sHexValue .... Converted data stream
' sets "\x" before each byte
Private Function CreateTBCHEXString(sHexValue)
Dim sTBCText As String
'set the prefix needed by TBarCode "\xhh"
sHexPrefix = "\x"
'bring the generated string into "\xhh" format
For i = 1 To Len(sHexValue) Step 2
sTBCText = sTBCText & sHexPrefix & Mid$(sHexValue, i, 2)
Next i
CreateTBCHEXString = sTBCText
End Function
TBarCode V10+
您可以使用编码模式 Hexadecimal,而无需使用转义序列。
即使您为二进制数据使用了转义序列,编码器仍会进行代码页转换(例如:\x88 在 Data Matrix 中会转换为与预期不同的值)。
解决方案:
- 关闭代码页转换(使用 LowByte 编码模式)
- 如果可用,强制使用二进制编码模式(参见 PDF417 编码模式、Data Matrix EnforceBinaryEncoding)
此内容适用于 DP Premium Address 及其他在二维符号(Data Matrix 等)中编码二进制数据的应用场景。