TBarCode Version History V1-V4

TBarCode (ActiveX/OCX, .NET, DLL) Version History Main Version V1, V2, V3, V4


Bug fixed:
  • PDF417-->full capacity of symbol is now utilized
New functions:
  • Callback-Interface for drawing bars and text implemented
  • GetQuality-function added
  • setting display-text separately
  • Text alignment
  • bar width reduction


Bug fixed:
  • Rounding error if you want to calculate the line height (PDF417)


Bug Fixed:
  • Changing the print ratio is now possible for PDF417
  • Small memory leak during Generate (redrawing) fixed
  • Symbologies Pharmacode (1+2) and UCC/EAN-14 were added


Bug Fix Data Matrix:
  • Draw routine produced pixel faults because of rounding errors (happened very rarely).


Bug Fixes (Error only in V4.1.1.32):
  • Exception in BCCopyToClipboardEx, if file name = null.
  • Behavior in ActiveX® Control: CopyToClipboard supplied no result.


Bug Fixes:
  • Data Matrix Bug in codes containing an odd number of digits (a random character was inserted at the end).
  • Empty rectangle in BCGetModulWidth/ BCGetHeight/ ..Width produced Floating Point Exception.
  • Check Digit Mod11 (Weight 7).
  • Barcode-Type: NVE-18
  • CopyToClipboardEx now supports WMF Files (in addition to EMF).


  • Licensing with Mem: the barcode.ini license file doesn't function.


  • MSI Check Digit-2 (2xMSI-Mod10)
  • Barcode type SSCC-1
  • Enumeration of CodablockE/F for subsequent implementation.


Bug Fixes:
  • Format Parameter ("^") only supports one Check Digit; for example, Mod47 is not supported.
  • In Format Property the characters "A, B, C" are not shown except with Code128.
  • PZN Germany Symbologie + Check Digit PZN-Mod11.


Bug Fixes:
  • Retrieving the actual symbol height for QR-Code.
  • Checkdigit, Code93 Full Ascii.


Bug Fix:
  • Div/Zero exception in Microsoft Visio within OnDraw event (if wrong initialized hDC with bad coordinates is passed).


Bug Fixes / New Features:
  • Incorrect check digit calculation method for UPC-E (resulting in wrong check digit).
  • New parameter in the Barcode.ini file for selecting GDI Drawing Method (for dealing with printer driver issues).


Bug Fix:
  • Text clipping occurred when rotating the bar code (and module width was set).
  • QR-Code: selection of Version 97x97 resulted in no bar code


Bug Fix:
  • UCC/EAN128: Application Identifiers (AI) extended + corrected AI recognition with AI 8xxx (no parenthesis appeared in human readable text)


Bug Fix:
  • Displaced drawing of MaxiCode symbol when rotation = 90°/270°


Bug Fixes:
  • No update of property bag if size of bounding rectangle changed.
  • GetLastErrorNo() caused an internal recalculation of the bar code what resulted in wrong return values.
  • Error messages more informative
  • Extended samples to cover more tasks that usually apply for bar code printing/generation.


  • V4 supports QR Code (needs 2D license)
  • OptResolution Property to adapt module width of bar code to pixel width
  • Adjustable Text format for DPIdent, DPLeit Code
  • Support for Unicode (WideString) and/or binary data
  • Error message if no data is encoded (instead of empty bar code)
  • Row/Column Ratio for PDF417 now adjustable


  • Temporary licensing in memory for Developer licenses ("Mem" key), no static Microsoft Windows Registry entry.


Bug Fix in Macro PDF: a reading problem - occurring if multiple Macro-PDF symbols are chained together - was corrected.



Bug Fix in PDF417: a problem that occurred when encoding bytes (especially for values 0x00 and 0x85) was corrected. The error in detail: a value of zero terminated the data string and 0x85 produced additional bytes.



Bug Fix: memory leak in method "CheckDigits" corrected.



New Features:
  • Now supporting the two dimensional symbology: "Data Matrix"
  • New property for 2D-symbols: CountRows
  • Enhanced functionality for "MaxiCode" in Structured Append Mode: by using of predefined Esc-sequences the values of Date, Preamble, Service Class, Postal- and Country- Code can be inserted in the bar code data (text property).
Bug Fixes:
  • A problem within Access reports was corrected: document was not savable ("OLE error"). The error always occurred when the bar code contained wrong data per default - e. g. alphanumerical data ("Adjust properties") when only numerical data is allowed (e. g. when bar code type EAN13 has been selected).


New Features:
  • Now supporting the linear bar code types: "Australian Post Office Code" and "Royal Mail 4 State Customer Code"
  • License data can be saved now into the windows registry keys HKLM (per default) or HKCU. Previous version stored license data only in HKLM - this caused problems if there were no HKLM access rights available.
Bug Fixes:
  • The Property "CountModules" is now calculated each time (in previous versions it was calculated only when a redraw of the barcode was performed).
  • The calculation of the property "CountModules" for code PDF417 was corrected.


Fixed: a problem when using FormPrint in Visual Basic was fixed.
Fixed: a problem printing multiple bar codes in Microsoft Access97 was fixed (first bar code invisible).



New features / corrections since V2.1.8
  • ATL based control (instead of MFC): less resources, no MFC-dependencies. Only the OCX has to be distributed and registered.
  • New: from now on the MaxiCode (2D barcode symbology) is supported in all modes. Also new: LOGMARS complying to Mil-Std. (based upon Code39, check digit optional, but recommended)
  • New: possibility for licensing via INI-file (instead of manual input or licensing via program code), this feature can be used optional e.g. for licensing & corrections after distribution.
  • Performance enhancements when producing multiple bar codes (e.g. in serial letters). Enhancements when refreshing the content of the bar code at screen previews or immediate before printing (Microsoft Excel®, Word...).
  • Bug-Fix for EAN128 in connection with FNC1. Format of the human readable text complies to EAN128 (Application Identifiers now put in parentheses).
  • New properties: Notchheight (EAN/UPC), Textdistance, MustFit (size check), BCHeightAct/Hdc and BCWidthAct/Hdc (size actually / approximated), ModWidthAct/Hdc (module width actually / approximated), DrawStatus (control of drawing process), CheckDigits (as string), CountCheckDigits, CountModules, SuppressErrorMsg
  • New event model: the properties (e.g. module width) of the bar code can be changed immediately before drawing or printing. The draw process can be controlled within the event code.
  • The bar code can be saved as image file (method SaveImage and new: SaveImageEx).
  • The bar code can be converted into a HTTP-conform data stream (JPG, PNG, BMP): New method ConvertToStream and ConvertToStreamEx.
  • The format of the documentation file was switched to HTML and has been extended.
  • Facilitated programming model for the DLL
  • Creation of the bar code in best resolution (Optimizing Pixel Technology).


New features / corrections since V2.0
  • PDF417: numeric compression mode was implemented.
  • PDF417: The check for the maximal input data length was corrected.
  • New bar code type: "Code 93 Extended" is supported now.
  • New bar code type: UCC128
  • Check digit computation: Corrected check digit methods for "Code 11" (Modulo 11 - one & two digits) for "Code 39 Extended" (Modulo 43) and for "Code 93 Extended" (Modulo 47).
  • Correction: "Translate escape sequences" now works correctly - Escape sequences are limited to 3 digits following the "\".
  • The new version supports all printers. There was a rare problem printing barcodes with some printers under Win95/98.
  • New ActiveX® Feature: SaveImage method () allows you to save the barcode as image file.


What's new?
  • PDF417: full support (even the "truncated" - version)
  • Code128: direct selection of Code128A, Code128B or Code128C (without specification of format/subset strings)
  • Escape-Sequences: Use control codes (such as carriage return) within the bar-code by utilization of so called escape sequences (e.g. \x0d) (new property EscapeSequences).
  • Clipboard: The barcode image can now be copied to the clipboard (new method CopyToClipboard)
  • Auxiliary: The width of the generated bar-code can be retrieved (supported units: pixels or mm) (new methods GetMinWidth, GetWidth and GetModuleWidth)
  • Licensing: we have implemented a new licensing method (changed parameters for method LicenseMe)
  • ActiveX® property dialog: a new dialog for the PDF417-properties was added. Some "cosmetic" changes.
  • MFC: Improved print-previewing when using the TBarCode OCX control within MFC applications (new method PaintMFC)
  • Memory: optimized memory usage
  • Sample applications: more (and better) applications are available now
  • Setup: beside the ActiveX® Control the setup program now installs sample applications and a start menu entry
  • Help: depending on the active page of the TBarCode property dialog the corresponding help section is displayed
  • Compatibility: V2.0 is not compatible with V1.4 (the licensing keys are incompatible too!)- V2.0 may be installed additional to V1.4!


Changes since V1.3:
  • Check-Digit calculation: automatically computed check-digits can be retrieved from the control (use method GetCheckDigit() and property CheckDigits)
  • Sample Applications: Microsoft Excel®-sample improved
  • Barcode-Type "Code 93": correction of code for character '.'
  • Barcode-Type "Code 128": Improved human readable text if using user-specified subsets
  • Compatibility: fully compatible with V1.3.


Changes since V1.2:

  • Error Messages: now in human readable form
  • Check-Digit Calculation: improved "Standard" method (see below)
  • Redistribution: a dependency-File (.DEP) usable by Visual Basic Setup Wizard is shipped with the control.
  • Sample Applications: Better documented
  • If you select Barcode-Type "None" nothing is drawn
  • Compatibility: fully compatible with V1.2. If you are using V1.0 or V1.1 you have to re-license the control (using the same license-key).
New: Check-Digit Calculation

In this version the check-digit calculation method "Standard" computes check digits only if required. Example: If EAN13 is filled with 12 digits the control computes the check digit automatically. If you supply 13 digits for EAN13 the control assumes your application have already computed the check digit - no automatic (re-)calculation is performed. TBarCode does not check the correctness of check digits supplied by your application!



Start of the version history.