OBR Library

OBR Library
Delphi and C++ Builder optical barcode recognition library.
  • uses ZXing.Net library
  • supports UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 93, Code 128, Codabar, ITF, RSS-14, RSS-Expanded, QR Code, Data Matrix, Aztec and PDF 417 barcodes
  • supports Windows 32 and Windows 64
  • available for Delphi/C++ Builder 7 - 10.2
  • source code included in registered version
  • royalty free distribution in applications

API

type
  TBarcodeFormat = (bfUnknown, bfAztec, bfCodabar, bfCode39, bfCode93,
    bfCode128, bfDataMatrix, bfEan8, bfEan13, bfItf, bfMaxicode, bfPdf417,
    bfQrCode, bfRss14, bfRssExpanded, bfUpcA, bfUpcE, bfUpcEanExtension,
    bfMsi, bfPlessey, bfImb, bf1D);
  TBarcodeFormats = set of TBarcodeFormat;

  TDecodeResult = record
    Result: _Result;
    Text: WideString;
    Format: TBarcodeFormat;
    FormatName: string;
    Points: array of TPointF;
  end;
  TDecodeResults = array of TDecodeResult;

  TBarcodeDecoder = class
  public
    constructor Create;

    function Decode(Graphic: TGraphic): TDecodeResults;

    property AssumeCode39CheckDigit: Boolean read write;
    property AssumeGS1: Boolean read write;
    property AssumeMSICheckDigit: Boolean read write;
    property BarcodeFormats: TBarcodeFormats read write; 
    property CharacterSet: WideString read write;
    property PureBarcode: Boolean read write;
    property ReturnCodabarStartEnd: Boolean read write;
    property TryHarder: Boolean read write;
    property UseCode39ExtendedMode: Boolean read write;
    property UseCode39RelaxedExtendedMode: Boolean read write;
  end;

Download and order

Order OBR Library $60,- USD (license for one developer)
Order OBR Library multilicense $180,- USD (license for all developers in company)
Order OBR Library year upgrades $30,- USD (registered users only)
Order OBR Library year upgrades multilicense $90,- USD (registered multilicense users only)

FAQ

How can I solve "Class not registered." error message?
  • Create manifest file yourapplicationname.exe.manifest (change yourapplicationname accordingly to the name of your application):
  • <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="yourapplicationname" type="*"/>>
    
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
            publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
        </dependentAssembly>
      </dependency>
    
      <dependency>
        <dependentAssembly>
          <assemblyIdentity name="Winsoft.ZXing" version="0.16.4.0" publicKeyToken="c2371442b2cedf55" processorArchitecture="msil"/>
        </dependentAssembly>
      </dependency>
    </assembly>
    							
  • Embed yourapplicationname.exe.manifest file to your application: Select Delphi menu Project/Options.../Application. Change Manifest File combobox to Custom and select yourapplicationname.exe.manifest file in Custom manifest edit box.
  • Instead of embedding yourapplicationname.exe.manifest file to your application, you can comment "{$R *.res}" line in yourapplicationname.dpr file and use external yourapplicationname.exe.manifest file:
  • // {$R *.res}
    							

Related links