Enum HanXinEncodeMode

Enum HanXinEncodeMode

名称: Aspose.BarCode.Generation 聚集: Aspose.BarCode.dll (25.4.0)

Han Xin 代码编码模式. 建议使用 Auto 与 ASCII / 中国字符或 Unicode 为 Unicode 字符。

public enum HanXinEncodeMode

Fields

Auto = 0

在自动模式下,CodeText以最大数据复制性编码。使用 GB18030 编码的 Unicode 字符根据 HanXin 条码规格进行编码。

Binary = 1

在二进制模式中,CodeText 以最大数据复制性编码。如果一个 Unicode 字符被发现,则被扔出一个例外。

ECI = 2

在 ECI 模式下,整个消息在 ECIE 编码所指定的编码中重新编码,并将 ECI 识别器插入。如果发现未受选 ECI 编码支持的字符,则将排除一个例外。请注意,一些旧(2006年之前)的扫描仪可能不支持此模式。

Extended = 5

扩展模式允许内部模式的组合:自动、二进制、文本、数字、URI、Unicode、ECI、Common Chinese Region One、一般中国区二,GB18030二比特,GB18030四比特。Codetext 可以用预定和双重背景创建,例如: @"\auto:abc\000009:ΑΒΓΔΕ\auto:ab\c" 或使用 HanXinExtCodetextBuilder。如果编码文本包含 ECI 片段,则仅可在 ECI 片段后在该编码文本中使用下列模式:自动,二进制,文本,数字,URI,ECI。

URI = 4

URI 模式显示在 Han Xin 代码中显示的数据是统一资源识别器(URI)请参见 RFC 3986。

Unicode = 3

Unicode 模式设计了一种方式,以便在 Han Xin 代码中代表任何文本数据参考到 UTF8 编码/编码。

Examples

// Auto mode
var codetext = "1234567890ABCDEFGabcdefg,Han Xin Code";
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin, codetext))
{
    generator.Save("test.bmp");
}

// Binary mode
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 mode
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 mode
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 mode
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");
}

// Extended mode
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");
}

// Using HanXinExtCodetextBuilder for Extended mode (same codetext as in previous example)
//create 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";

//generate codetext
var str = codeTextBuilder.GetExtendedCodetext();

//generate
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin, str))
{
    generator.Parameters.Barcode.HanXin.HanXinEncodeMode = HanXinEncodeMode.Extended;
    generator.Save("test.bmp");
}
 中文