Browse our Products
Aspose.BarCode for Reporting Services 7.0.0 Release Notes
Aspose.BarCode for Reporting Services has been updated to version 7.0.0 and we are pleased to announce it. The following is a list of changes in this version of Aspose.BarCode for Reporting Services.
New Features
BARCODREP-33181 Add generation with empty bars
BARCODREP-33163 Add support of SQL Server 2014 to Aspose.BarCode for Reporting Services
Enhancements
BARCODREP-33170 Check support of Business Intelligence for Visual Studio 2013
BARCODENET-33919 Can’t create Code128 barcode with standard ‘f’ character
BARCODENET-34099 Incorrect encoding punctuaion in PDF417 and MicroPDF417 barcodes
BARCODENET-33990 Index out of range error message while generating a Code128 symbology
BARCODENET-34053 Add encoding support of Micro QR code
BARCODENET-34185 Same size OneCode barcodes are being generated
BARCODENET-33987 XDimension property is not working as expected
BARCODENET-33930 Parcels always start with 99.42 whereas Aspose SwissPostParcel symbology adds 98 in start
Public API changes and usage examples:
BARCODREP-33181 Add generation with empty bars
Added new property FilledBars for BarCodeBuilder for generating filled or notfilled bars. This property works only with 1D barcodes. Default value is true (filled).
The following is an example of the new API usage:
Public Function GetBarCodeImage() As
Byte
()
objBarcode.CodeText =
"TEXT"
objBarcode.SymbologyType = Aspose.BarCode.ReportingServices.Symbology.Code128
objBarcode.FilledBars =
false
'Generate the barcode image
Dim ms As New
System
.IO.MemoryStream
objBarcode.Save(ms,
System
.Drawing.Imaging.ImageFormat.Png)
Return ms.GetBuffer()
End Function
Result:
BARCODENET-34053 Add encoding support of Micro QR code
QREncodeType
Added new property QREncodeType to BarCodeBuilder. The property works as QR / MicroQR selector. Select ForceQR(default) for standard QR symbols, Auto for MicroQR.
Added new Enum QREncodeType:
Auto - mode starts barcode version negotiation from MicroQR V1
ForceQR -- mode starts barcode version negotiation from QR V1
ForceMicroQR - mode starts barcode version negotiation from from MicroQR V1 to V4. If data cannot be encoded into MicroQR, exception is thrown.
Example how to encode MicroQR
Public Function GetBarCodeImage() As
Byte
()
objBarcode.CodeText =
"12345TEXT"
objBarcode.SymbologyType = Aspose.BarCode.ReportingServices.Symbology.QR
objBarcode.QREncodeMode = Aspose.BarCode.ReportingServices.QREncodeMode.Auto
objBarcode.QREncodeType = Aspose.BarCode.ReportingServices.QREncodeType.Auto
objBarcode.QRErrorLevel = Aspose.BarCode.ReportingServices.QRErrorLevel.LevelL
'Generate the barcode image
Dim ms As New
System
.IO.MemoryStream
objBarcode.Save(ms,
System
.Drawing.Imaging.ImageFormat.Png)
Return ms.GetBuffer()
End Function
Result:
Example how to encode QR
Public Function GetBarCodeImage() As
Byte
()
objBarcode.CodeText =
"12345TEXT"
objBarcode.SymbologyType = Aspose.BarCode.ReportingServices.Symbology.QR
objBarcode.QREncodeMode = Aspose.BarCode.ReportingServices.QREncodeMode.Auto
objBarcode.QREncodeType = Aspose.BarCode.ReportingServices.QREncodeType.ForceQR
objBarcode.QRErrorLevel = Aspose.BarCode.ReportingServices.QRErrorLevel.LevelL
'Generate the barcode image
Dim ms As New
System
.IO.MemoryStream
objBarcode.Save(ms,
System
.Drawing.Imaging.ImageFormat.Png)
Return ms.GetBuffer()
End Function
Result:
ECIEncodings
Added new property ECIEncoding to BarCodeBuilder. It is used to tell the barcode reader details about the used references for encoding the data in the symbol by the Extended Channel Interpretation Identifiers. Current implementation consists all well-known charset encodings. Currently, it is used only for QR 2D barcode.
Added new Enum ECIEncodings:
ISO_8859_1 - ISO/IEC 8859-1 Latin alphabet No. 1 encoding. ECI Id:"\000003";
ISO_8859_2 - ISO/IEC 8859-2 Latin alphabet No. 2 encoding. ECI Id:"\000004";
ISO_8859_3 - ISO/IEC 8859-3 Latin alphabet No. 3 encoding. ECI Id:"\000005";
ISO_8859_4 - ISO/IEC 8859-4 Latin alphabet No. 4 encoding. ECI Id:"\000006";
ISO_8859_5 - ISO/IEC 8859-5 Latin/Cyrillic alphabet encoding. ECI Id:"\000007";
ISO_8859_6 - ISO/IEC 8859-6 Latin/Arabic alphabet encoding. ECI Id:"\000008";
ISO_8859_7 - ISO/IEC 8859-7 Latin/Greek alphabet encoding. ECI Id:"\000009";
ISO_8859_8 - ISO/IEC 8859-8 Latin/Hebrew alphabet encoding. ECI Id:"\000010";
ISO_8859_9 - ISO/IEC 8859-9 Latin alphabet No. 5 encoding. ECI Id:"\000011";
ISO_8859_10 - ISO/IEC 8859-10 Latin alphabet No. 6 encoding. ECI Id:"\000012";
ISO_8859_11 - ISO/IEC 8859-11 Latin/Thai alphabet encoding. ECI Id:"\000013";
ISO_8859_13 - ISO/IEC 8859-13 Latin alphabet No. 7 (Baltic Rim) encoding. ECI Id:"\000015";
ISO_8859_14 - ISO/IEC 8859-14 Latin alphabet No. 8 (Celtic) encoding. ECI Id:"\000016";
ISO_8859_15 - ISO/IEC 8859-15 Latin alphabet No. 9 encoding. ECI Id:"\000017";
ISO_8859_16 - ISO/IEC 8859-16 Latin alphabet No. 10 encoding. ECI Id:"\000018";
Shift_JIS - Shift JIS (JIS X 0208 Annex 1 + JIS X 0201) encoding. ECI Id:"\000020";
Win1250 - Windows 1250 Latin 2 (Central Europe) encoding. ECI Id:"\000021";
Win1251 - Windows 1251 Cyrillic encoding. ECI Id:"\000022";
Win1252 - Windows 1252 Latin 1 encoding. ECI Id:"\000023";
Win1256 - Windows 1256 Arabic encoding. ECI Id:"\000024";
UTF16BE - ISO/IEC 10646 UCS-2 (High order byte first) encoding. ECI Id:"\000025";
UTF8 - ISO/IEC 10646 UTF-8 encoding. ECI Id:"\000026";
US_ASCII - ISO/IEC 646:1991 International Reference Version of ISO 7-bit coded character set encoding. ECI Id:"\000027";
Big5 - Big 5 (Taiwan) Chinese Character Set encoding. ECI Id:"\000028";
GB18030 - GB (PRC) Chinese Character Set encoding. ECI Id:"\000029";
EUC_KR - Korean Character Set encoding. ECI Id:"\000030";
Example how to use ECI encoding
Public Function GetBarCodeImage() As
Byte
()
objBarcode.CodeText =
"12345TEXT"
objBarcode.SymbologyType = Aspose.BarCode.ReportingServices.Symbology.QR
objBarcode.QREncodeMode = Aspose.BarCode.ReportingServices.QREncodeMode.Auto
objBarcode.QREncodeType = Aspose.BarCode.ReportingServices.QREncodeType.ForceQR
objBarcode.ECIEncoding = Aspose.BarCode.ReportingServices.ECIEncodings.UTF8
objBarcode.QRErrorLevel = Aspose.BarCode.ReportingServices.QRErrorLevel.LevelL
'Generate the barcode image
Dim ms As New
System
.IO.MemoryStream
objBarcode.Save(ms,
System
.Drawing.Imaging.ImageFormat.Png)
Return ms.GetBuffer()
End Function
QREncodeMode
Added changes to Enum 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.;
Bytes - encode codetext as plain bytes. If it detects any unicode character, the character will be encoded as two bytes, lower byte first;
Utf8BOM - encode codetext with UTF8 encoding with first ByteOfMark character;
Utf16BEBOM - encode codetext with UTF8 encoding with first ByteOfMark character. It can be problems with some barcode scaners;
ECIEncoding - encode codetext with value set in the ECIEncoding property. It can be problems with some old (pre 2006) barcode scaners.
ExtendedCodetext - encode codetext in Extended Channel mode which supports FNC1 first position, FNC1 second position and multi ECI modes.
ExtendedCodetext
Value ExtendedCodetext in QREncodeMode gives ability to Encode multi-ECI and FNC1 in first and second position.
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.
Simplify codetext generation for ExtendedCodetext.
To simplify Extended Codetext generation new class QrExtCodetextBuilder was added.
To simplify Extended Codetext generation new class QrExtCodetextBuilder was added.
QrExtCodetextBuilder:
Clear() - clears extended codetext items.
AddPlainCodetext(System.String) - adds plain codetext to the extended codetext items.
AddECICodetext(Aspose.BarCode.ECIEncodings,System.String) - Adds codetext with Extended Channel Identifier.
AddFNC1FirstPosition()-adds FNC1 in first position to the extended codetext items.
AddFNC1SecondPosition(System.String) - adds FNC1 in second position to the extended codetext items.
AddFNC1GroupSeparator()-Adds Group Separator (GS - '\u001D') to the extended codetext items.
GetExtendedCodetext()\- generates extended codetext from generation items list.
Example how to use FNC1 first position in Extended Mode
Public Function GetBarCodeImage() As
Byte
()
'create codetext
Dim lTextBuilder As New Aspose.BarCode.ReportingServices.QrExtCodetextBuilder
lTextBuilder.AddFNC1FirstPosition()
lTextBuilder.AddPlainCodetext(
"000%89%%0"
)
lTextBuilder.AddFNC1GroupSeparator()
lTextBuilder.AddPlainCodetext(
"12345<FNC1>"
)
'generate codetext
Dim lCodetext As
String
lCodetext = lTextBuilder.GetExtendedCodetext()
objBarcode.CodeText = lCodetext
objBarcode.Display2DText =
"My Text"
objBarcode.SymbologyType = Aspose.BarCode.ReportingServices.Symbology.QR
objBarcode.QREncodeMode = Aspose.BarCode.ReportingServices.QREncodeMode.ExtendedCodetext
objBarcode.QRErrorLevel = Aspose.BarCode.ReportingServices.QRErrorLevel.LevelL
'Generate the barcode image
Dim ms As New
System
.IO.MemoryStream
objBarcode.Save(ms,
System
.Drawing.Imaging.ImageFormat.Png)
Return ms.GetBuffer()
End Function
Example how to use FNC1 second position in Extended Mode
Public Function GetBarCodeImage() As
Byte
()
'create codetext
Dim lTextBuilder As New Aspose.BarCode.ReportingServices.QrExtCodetextBuilder
lTextBuilder.AddFNC1SecondPosition(
"12"
)
lTextBuilder.AddPlainCodetext(
"TRUE3456"
)
'generate codetext
Dim lCodetext As
String
lCodetext = lTextBuilder.GetExtendedCodetext()
objBarcode.CodeText = lCodetext
objBarcode.Display2DText =
"My Text"
objBarcode.SymbologyType = Aspose.BarCode.ReportingServices.Symbology.QR
objBarcode.QREncodeMode = Aspose.BarCode.ReportingServices.QREncodeMode.ExtendedCodetext
objBarcode.QRErrorLevel = Aspose.BarCode.ReportingServices.QRErrorLevel.LevelL
'Generate the barcode image
Dim ms As New
System
.IO.MemoryStream
objBarcode.Save(ms,
System
.Drawing.Imaging.ImageFormat.Png)
Return ms.GetBuffer()
End Function
Example how to use multi ECI mode in Extended Mode
Public Function GetBarCodeImage() As
Byte
()
'create codetext
Dim lTextBuilder As New Aspose.BarCode.ReportingServices.QrExtCodetextBuilder
lTextBuilder.AddECICodetext(Aspose.BarCode.ReportingServices.ECIEncodings.Win1251,
"Will"
)
lTextBuilder.AddECICodetext(Aspose.BarCode.ReportingServices.ECIEncodings.UTF8,
"Right"
)
lTextBuilder.AddECICodetext(Aspose.BarCode.ReportingServices.ECIEncodings.UTF16BE,
"Power"
)
lTextBuilder.AddPlainCodetext(
"t\\e\\\\st"
)
'generate codetext
Dim lCodetext As
String
lCodetext = lTextBuilder.GetExtendedCodetext()
objBarcode.CodeText = lCodetext
objBarcode.Display2DText =
"My Text"
objBarcode.SymbologyType = Aspose.BarCode.ReportingServices.Symbology.QR
objBarcode.QREncodeMode = Aspose.BarCode.ReportingServices.QREncodeMode.ExtendedCodetext
objBarcode.QRErrorLevel = Aspose.BarCode.ReportingServices.QRErrorLevel.LevelL
'Generate the barcode image
Dim ms As New
System
.IO.MemoryStream
objBarcode.Save(ms,
System
.Drawing.Imaging.ImageFormat.Png)
Return ms.GetBuffer()
End Function
Hints and tips
MicroQR cannot support ECI and FNC1 modes. In this way if you want to generate MicroQR code you must use current modes of QREncodeMode:
Auto;
Bytes;
Utf8BOM;
Utf16BEBOM;