Enum HanXinEncodeMode
Namespace: Aspose.BarCode.Generation
Assembly: Aspose.BarCode.dll (25.1.0)
Modo de codificación del código Han Xin. Se recomienda usar Auto con caracteres ASCII / chinos o Unicode para caracteres Unicode.
public enum HanXinEncodeMode
Campos
Auto = 0
En modo Auto, el CodeText se codifica con la máxima compacidad de datos. Los caracteres Unicode se codifican utilizando la codificación GB18030 de acuerdo con la especificación del código de barras HanXin.
Binary = 1
En modo Binary, el CodeText se codifica con la máxima compacidad de datos. Si se encuentra un carácter Unicode, se lanza una excepción.
ECI = 2
En modo ECI, el mensaje completo se vuelve a codificar en la codificación ECI especificada con la inserción de un identificador ECI. Si se encuentra un carácter que no es compatible con la codificación ECI seleccionada, se lanza una excepción. Tenga en cuenta que algunos escáneres antiguos (pre 2006) pueden no ser compatibles con este modo.
Extended = 5
El modo Extended permite combinaciones de modos internos: Auto, Binary, Text, Numeric, URI, Unicode, ECI, Región Común China Uno, Región Común China Dos, GB18030 de dos bytes, GB18030 de cuatro bytes. El codetext se puede construir manualmente con prefijos y barras invertidas duplicadas, por ejemplo: @"\auto:abc\000009:ΑΒΓΔΕ\auto:ab\c" o utilizando el HanXinExtCodetextBuilder. Si el codetext contiene un fragmento ECI, entonces solo los siguientes modos pueden estar en ese codetext después del fragmento ECI: Auto, Binary, Text, Numeric, URI, ECI.
URI = 4
El modo URI indica que los datos representados en el código Han Xin son un Identificador de Recursos Uniforme (URI) referente a la RFC 3986.
Unicode = 3
El modo Unicode diseña una forma de representar cualquier dato de texto referente a la codificación/charset UTF8 en el código Han Xin.
Ejemplos
// 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 el modo Extended (mismo codetext que en el ejemplo anterior)
//crear 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";
//generar codetext
var str = codeTextBuilder.GetExtendedCodetext();
//generar
using (var generator = new BarcodeGenerator(EncodeTypes.HanXin, str))
{
generator.Parameters.Barcode.HanXin.HanXinEncodeMode = HanXinEncodeMode.Extended;
generator.Save("test.bmp");
}