Enum HanXinEncodeMode

Enum HanXinEncodeMode

Namespace: Aspose.BarCode.Generation
Assembly: Aspose.BarCode.dll (25.1.0)

Modo de codificação do Código Han Xin. Recomenda-se usar Auto com caracteres ASCII / chineses ou Unicode para caracteres Unicode.

public enum HanXinEncodeMode

Campos

Auto = 0

No modo Auto, o CodeText é codificado com a máxima compactação de dados. Os caracteres Unicode são codificados usando a codificação GB18030 de acordo com a especificação do código de barras HanXin.

Binary = 1

No modo Binary, o CodeText é codificado com a máxima compactação de dados. Se um caractere Unicode for encontrado, uma exceção é lançada.

ECI = 2

No modo ECI, toda a mensagem é re-codificada na codificação especificada por ECIEncoding com a inserção de um identificador ECI. Se um caractere for encontrado que não é suportado pela codificação ECI selecionada, uma exceção é lançada. Por favor, note que alguns scanners antigos (pré-2006) podem não suportar este modo.

Extended = 5

O modo Extended permite combinações de modos internos: Auto, Binary, Text, Numeric, URI, Unicode, ECI, Região Comum da China Um, Região Comum da China Dois, GB18030 Dois Bytes, GB18030 Quatro Bytes. O codetext pode ser construído manualmente com prefixos e barras invertidas duplicadas, por exemplo: @"\auto:abc\000009:ΑΒΓΔΕ\auto:ab\c" ou usando o HanXinExtCodetextBuilder. Se o codetext contiver um fragmento ECI, então apenas os seguintes modos podem estar nesse codetext após o fragmento ECI: Auto, Binary, Text, Numeric, URI, ECI.

URI = 4

O modo URI indica que os dados representados no Código Han Xin são um Identificador de Recurso Uniforme (URI) referente à RFC 3986.

Unicode = 3

O modo Unicode projeta uma maneira de representar qualquer dado textual referente à codificação/conjunto de caracteres UTF8 no Código Han Xin.

Exemplos

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

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

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

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

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

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

// Usando HanXinExtCodetextBuilder para o modo Extended (mesmo codetext que no exemplo anterior)
// criar 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";

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

// gerar
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin, str))
{
    generator.Parameters.Barcode.HanXin.HanXinEncodeMode = HanXinEncodeMode.Extended;
    generator.Save("test.bmp");
}
 Português