Enum HanXinEncodeMode
Namespace: Aspose.BarCode.Generation
Assembly: Aspose.BarCode.dll (25.1.0)
汉信码编码模式。建议使用自动模式与 ASCII / 中文字符或 Unicode 字符。
public enum HanXinEncodeMode
字段
Auto = 0
在自动模式下,CodeText 以最大数据紧凑性进行编码。 Unicode 字符使用 GB18030 编码,根据汉信条形码规范进行编码。
Binary = 1
在二进制模式下,CodeText 以最大数据紧凑性进行编码。 如果发现 Unicode 字符,则会抛出异常。
ECI = 2
在 ECI 模式下,整个消息在指定的 ECIEncoding 编码中重新编码,并插入 ECI 标识符。 如果发现不受所选 ECI 编码支持的字符,则会抛出异常。 请注意,一些旧的(2006 年之前)扫描仪可能不支持此模式。
Extended = 5
扩展模式允许内部模式的组合:自动、二进制、文本、数字、URI、Unicode、ECI、普通中国区域一、 普通中国区域二、GB18030 两字节、GB18030 四字节。 Codetext 可以手动构建,使用前缀和双反斜杠,例如:@"\auto:abc\000009:ΑΒΓΔΕ\auto:ab\c" 或使用 HanXinExtCodetextBuilder。 如果 codetext 包含 ECI 片段,则在 ECI 片段之后,该 codetext 中只能包含以下模式: 自动、二进制、文本、数字、URI、ECI。
URI = 4
URI 模式表示在汉信码中表示的数据是统一资源标识符 (URI), 参考 RFC 3986。
Unicode = 3
Unicode 模式设计了一种表示任何文本数据的方式,参考 UTF8 编码/字符集在汉信码中。
示例
// 自动模式
var codetext = "1234567890ABCDEFGabcdefg,汉信码";
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin, codetext))
{
generator.Save("test.bmp");
}
// 二进制模式
byte[] encodedArr = { 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9 };
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin))
{
generator.SetCodetext(encodedArr);
generator.Parameters.Barcode.HanXin.HanXinEncodeMode = HanXinEncodeMode.Binary;
generator.Save("test.bmp");
}
// ECI 模式
var codetext = "ΑΒΓΔΕ";
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin, codetext))
{
generator.Parameters.Barcode.HanXin.HanXinEncodeMode = HanXinEncodeMode.ECI;
generator.Parameters.Barcode.HanXin.HanXinECIEncoding = ECIEncodings.ISO_8859_7;
generator.Save("test.bmp");
}
// Unicode 模式
var codetext = "abcd АБВ ıntəˈnæʃənəl テスト 안녕하세요 테스트 테스트";
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin, codetext))
{
generator.Parameters.Barcode.HanXin.HanXinEncodeMode = HanXinEncodeMode.Unicode;
generator.Save("test.bmp");
}
// URI 模式
var codetext = "https://www.test.com/%BC%DE%%%ab/search=test";
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin, codetext))
{
generator.Parameters.Barcode.HanXin.HanXinEncodeMode = HanXinEncodeMode.URI;
generator.Save("test.bmp");
}
// 扩展模式
var str = @"\gb180302b:漄\gb180304b:㐁\region1:全\region2:螅\numeric:123\text:qwe\unicode:ıntəˈnæʃənəl" +
@"\000009:ΑΒΓΔΕ\auto:abc\binary:abc\uri:backslashes_should_be_doubled\\000555:test";
var expectedStr = @"漄㐁全螅123qweıntəˈnæʃənəlΑΒΓΔΕabcabcbackslashes_should_be_doubled\000555:test";
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin, str))
{
generator.Parameters.Barcode.HanXin.HanXinEncodeMode = HanXinEncodeMode.Extended;
generator.Save("test.bmp");
}
// 使用 HanXinExtCodetextBuilder 进行扩展模式(与前一个示例中的 codetext 相同)
// 创建 codetext
var codeTextBuilder = new HanXinExtCodetextBuilder();
codeTextBuilder.AddGB18030TwoByte("漄");
codeTextBuilder.AddGB18030FourByte("㐁");
codeTextBuilder.AddCommonChineseRegionOne("全");
codeTextBuilder.AddCommonChineseRegionTwo("螅");
codeTextBuilder.AddNumeric("123");
codeTextBuilder.AddText("qwe");
codeTextBuilder.AddUnicode("ıntəˈnæʃənəl");
codeTextBuilder.AddECI("ΑΒΓΔΕ", 9);
codeTextBuilder.AddAuto("abc");
codeTextBuilder.AddBinary("abc");
codeTextBuilder.AddURI(@"backslashes_should_be_doubled\000555:test");
var expectedStr = @"漄㐁全螅123qweıntəˈnæʃənəlΑΒΓΔΕabcabcbackslashes_should_be_doubled\000555:test";
// 生成 codetext
var str = codeTextBuilder.GetExtendedCodetext();
// 生成
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin, str))
{
generator.Parameters.Barcode.HanXin.HanXinEncodeMode = HanXinEncodeMode.Extended;
generator.Save("test.bmp");
}