Enum HanXinEncodeMode

Enum HanXinEncodeMode

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

Han Xin コードエンコーディングモード。ASCII / 中国語文字またはUnicode文字にはAutoを使用することをお勧めします。

public enum HanXinEncodeMode

フィールド

Auto = 0

Autoモードでは、CodeTextは最大データ圧縮でエンコードされます。
Unicode文字は、HanXinバーコード仕様に従ってGB18030エンコーディングを使用してエンコードされます。

Binary = 1

Binaryモードでは、CodeTextは最大データ圧縮でエンコードされます。
Unicode文字が見つかった場合、例外がスローされます。

ECI = 2

ECIモードでは、メッセージ全体がECIEncodingで指定されたエンコーディングに再エンコードされ、ECI識別子が挿入されます。
選択したECIエンコーディングでサポートされていない文字が見つかった場合、例外がスローされます。
一部の古い(2006年以前の)スキャナーはこのモードをサポートしていない可能性があることに注意してください。

Extended = 5

Extendedモードでは、内部モードの組み合わせを許可します:Auto、Binary、Text、Numeric、URI、Unicode、ECI、Common Chinese Region One、
Common Chinese Region Two、GB18030 Two Byte、GB18030 Four Byte。
Codetextは、プレフィックスと二重バックスラッシュを使用して手動で構築することができます。例: @"\auto:abc\000009:ΑΒΓΔΕ\auto:ab\c" またはHanXinExtCodetextBuilderを使用します。
CodetextにECIフラグメントが含まれている場合、そのECIフラグメントの後に次のモードのみがそのcodetextに含まれることができます:
Auto、Binary、Text、Numeric、URI、ECI。

URI = 4

URIモードは、Han Xin コードで表されるデータがRFC 3986のUniform Resource Identifier (URI)であることを示します。

Unicode = 3

Unicodeモードは、Han Xin コードでUTF8エンコーディング/文字セットを参照して任意のテキストデータを表現する方法を設計します。

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

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

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

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

// HanXinExtCodetextBuilderを使用してExtendedモード(前の例と同じ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");
}
 日本語