Enum HanXinEncodeMode

Enum HanXinEncodeMode

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

Tryb kodowania kodu Han Xin. Zaleca się użycie trybu Auto z znakami ASCII / chińskimi lub Unicode dla znaków Unicode.

public enum HanXinEncodeMode

Pola

Auto = 0

W trybie Auto, CodeText jest kodowany z maksymalną kompakcyjnością danych. Znaki Unicode są kodowane przy użyciu kodowania GB18030 zgodnie ze specyfikacją kodu kreskowego HanXin.

Binary = 1

W trybie Binary, CodeText jest kodowany z maksymalną kompakcyjnością danych. Jeśli zostanie znaleziony znak Unicode, zostanie zgłoszony wyjątek.

ECI = 2

W trybie ECI, cała wiadomość jest ponownie kodowana w kodowaniu ECIEncoding określonym z wstawieniem identyfikatora ECI. Jeśli zostanie znaleziony znak, który nie jest obsługiwany przez wybrane kodowanie ECI, zostanie zgłoszony wyjątek. Należy pamiętać, że niektóre starsze skanery (sprzed 2006 roku) mogą nie obsługiwać tego trybu.

Extended = 5

Tryb Extended pozwala na kombinacje trybów wewnętrznych: Auto, Binary, Text, Numeric, URI, Unicode, ECI, Common Chinese Region One, Common Chinese Region Two, GB18030 Two Byte, GB18030 Four Byte. Codetext można budować ręcznie z prefiksami i podwójnymi ukośnikami, np.: @"\auto:abc\000009:ΑΒΓΔΕ\auto:ab\c" lub używając HanXinExtCodetextBuilder. Jeśli codetext zawiera fragment ECI, to tylko następujące tryby mogą znajdować się w tym codetext po fragmencie ECI: Auto, Binary, Text, Numeric, URI, ECI.

URI = 4

Tryb URI wskazuje, że dane reprezentowane w kodzie Han Xin są identyfikatorem zasobów uniformnych (URI) odniesienie do RFC 3986.

Unicode = 3

Tryb Unicode projektuje sposób reprezentacji dowolnych danych tekstowych odniesionych do kodowania/charset UTF8 w kodzie Han Xin.

Przykłady

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

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

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

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

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

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

// Użycie HanXinExtCodetextBuilder dla trybu Extended (ten sam codetext co w poprzednim przykładzie)
//tworzenie 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";

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

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