public enum QREncodeMode extends java.lang.Enum<QREncodeMode>
Encoding mode for QR barcodes. It is recomended to Use Auto with CodeTextEncoding = Encoding.UTF8 for latin symbols or digits and Utf8BOM for unicode symbols.
Enum Constant and Description |
---|
Auto
Encode codetext as is non-unicode charset.
|
Bytes
Encode codetext as plain bytes.
|
ECIEncoding
Encode codetext with value set in the ECIEncoding property.
|
ExtendedCodetext |
Utf16BEBOM
Encode codetext with UTF8 encoding with first ByteOfMark character.
|
Utf8BOM
Encode codetext with UTF8 encoding with first ByteOfMark character.
|
Modifier and Type | Method and Description |
---|---|
int |
getValue() |
static QREncodeMode |
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.
|
static QREncodeMode[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final QREncodeMode Auto
Encode codetext as is non-unicode charset. If there is any unicode character, the codetext will be encoded with value which is set in CodeTextEncoding.
public static final QREncodeMode Bytes
Encode codetext as plain bytes. If it detects any unicode character, the character will be encoded as two bytes, lower byte first.
public static final QREncodeMode Utf8BOM
Encode codetext with UTF8 encoding with first ByteOfMark character.
public static final QREncodeMode Utf16BEBOM
Encode codetext with UTF8 encoding with first ByteOfMark character. It can be problems with some barcode scaners.
public static final QREncodeMode ECIEncoding
Encode codetext with value set in the ECIEncoding property. It can be problems with some old (pre 2006) barcode scaners.
Example how to use ECI encodingBarCodeBuilder builder = new BarCodeBuilder(); builder.setEncodeType(EncodeTypes.QR); builder.setQREncodeMode(QREncodeMode.ECIEncoding); builder.setQREncodeType(QREncodeType.ForceQR); builder.setECIEncoding(ECIEncodings.UTF8); builder.setCodeText("12345TEXT"); builder.setQRErrorLevel(QRErrorLevel.LevelL); Bitmap lBmp = builder.generateBarCodeImage();
public static final QREncodeMode ExtendedCodetext
Extended Channel mode which supports FNC1 first position, FNC1 second position and multi ECI modes.
It is better to use QrExtCodetextBuilder for extended codetext generation.
Use Display2DText property to set visible text to removing managing characters.
Encoding Principles:
All symbols "\" must be doubled "\\" in the codetext.
FNC1 in first position is set in codetext as as "<FNC1>"
FNC1 in second position is set in codetext as as "<FNC1(value)>". The value must be single symbols (a-z, A-Z) or digits from 0 to 99.
Group Separator for FNC1 modes is set as 0x1D character '\\u001D'
If you need to insert "<FNC1>" string into barcode write it as "<\FNC1>"
ECI identifiers are set as single slash and six digits identifier "\000026" - UTF8 ECI identifier
TO disable current ECI mode and convert to default JIS8 mode zero mode ECI indetifier is set. "\000000"
All unicode characters after ECI identifier are automatically encoded into correct character codeset.
Example how to use FNC1 first position in Extended Mode//create codetext QrExtCodetextBuilder lTextBuilder = new QrExtCodetextBuilder(); lTextBuilder.addFNC1FirstPosition(); lTextBuilder.addPlainCodetext("000%89%%0"); lTextBuilder.addFNC1GroupSeparator(); lTextBuilder.addPlainCodetext("12345<FNC1>");Example how to use FNC1 second position in Extended Mode//generate codetext string lCodetext = lTextBuilder.GetExtendedCodetext();
//generate BarCodeBuilder builder = new BarCodeBuilder(); builder.setEncodeType(EncodeTypes.QR); builder.setQREncodeMode(QREncodeMode.ExtendedCodetext); builder.setCodeText(lCodetext); builder.setQRErrorLevel(QRErrorLevel.LevelL); builder.setDisplay2DText("My Text"); Bitmap lBmp = builder.generateBarCodeImage();
//create codetext QrExtCodetextBuilder lTextBuilder = new QrExtCodetextBuilder(); lTextBuilder.addFNC1SecondPosition("12"); lTextBuilder.addPlainCodetext("TRUE3456");Example how to use multi ECI mode in Extended Mode//generate codetext string lCodetext = lTextBuilder.getExtendedCodetext();
//generate BarCodeBuilder builder = new BarCodeBuilder(); builder.setEncodeType(EncodeTypes.QR); builder.setQREncodeMode(QREncodeMode.ExtendedCodetext); builder.setCodeText(lCodetext); builder.setQRErrorLevel(QRErrorLevel.LevelL); builder.setDisplay2DText("My Text"); Bitmap lBmp = builder.generateBarCodeImage();
//create codetext QrExtCodetextBuilder lTextBuilder = new QrExtCodetextBuilder(); lTextBuilder.addECICodetext(ECIEncodings.Win1251, "Will"); lTextBuilder.addECICodetext(ECIEncodings.UTF8, "Right"); lTextBuilder.addECICodetext(ECIEncodings.UTF16BE, "Power"); lTextBuilder.addPlainCodetext(@"t\e\\st");//generate codetext string lCodetext = lTextBuilder.getExtendedCodetext();
//generate BarCodeBuilder builder = new BarCodeBuilder(); builder.setEncodeType(EncodeTypes.QR); builder.setQREncodeMode(QREncodeMode.ExtendedCodetext); builder.setCodeText(lCodetext); builder.setQRErrorLevel(QRErrorLevel.LevelL); builder.setDisplay2DText("My Text"); Bitmap lBmp = builder.generateBarCodeImage();
public static QREncodeMode[] values()
for (QREncodeMode c : QREncodeMode.values()) System.out.println(c);
public static QREncodeMode valueOf(java.lang.String name)
name
- the name of the enum constant to be returned.java.lang.IllegalArgumentException
- if this enum type has no constant
with the specified namejava.lang.NullPointerException
- if the argument is nullpublic int getValue()