Skip to content


Repository files navigation


Web API Barcode Reader Server  (WABR) offers a REST API for the Inlite Research ClearImage Barcode Recognition technology.
This wabr-net SDK simplifies the WABR client-side .NET development.

This repository includes VS 2013 with wabr.cs implementing wabr-net API.

Create a Reader

  • Use .NET Framework 4.5 or higher.
  • Add wabr.cs
  • Add Reference to System.Web
string authorization = "";
string serverUrl = "";
WABarcodeReader reader = new WABarcodeReader(serverUrl, authorization);


  • serverURL is the WABR server URL
    • It is the URL of your hosted server
    • To interact with the Inlite-hosted Test Server use the empty string to send HTTP Request to
  • authorization is a value set in Authorization field of the HTTP Request header. If authorization is an empty string, then the value is set from the WABR_AUTH environmental variable (if present).
    • For your hosted server: Use the empty string if no authentication is required, otherwise use the value expected by your IIS Authentication handler
    • For the Inlite-hosted Test Server: Use the Authorization Code supplied by Inlite. Without a valid authorization value, the Test Server returns partial results, which could be sufficient for testing the operation of your client-side code. To obtain an Authorization Code contact Inlite at

Read barcodes

Synchronous API

Use the Read() method to synchronously obtain barcode values as an Array of WABarcode objects

    WABarcode[] barcodes = reader.Read(image_source, types, directions, tbr_code);
	// Process barcode reading results
	// e.g. ShowBarcodes(barcodes);
catch (Exception ex)
    Console.WriteLine("EXCEPTION: " + ex.Message);

Asynchronous API

Use the ReadAsync() methods to asynchronously obtain barcode values . To process both barcodes and exceptions both methods use method implementing delReaderCallback delegate.

void ReaderCallback(string evnt, Object value, Object obj)
    if (value == null) return;
    switch (evnt)
        case "error":
            Console.WriteLine("EXCEPTION: " + value.ToString());
        case "barcodes":
            WABarcode[] barcodes = (WABarcode[])value;
	    // Process barcode reading results
	    // e.g. ShowBarcodes(barcodes);
delReaderCallback callback = ReaderCallback;
reader.ReadAsync(image_source, callback, image, types, directions, tbr_code);


  • image_source is a required parameter that points to the image(s) that the WABR server will read. The following formats are accepted.
    • URL of Internet-based file. The name should start with http:// , https:// or file://. Examples:
- *Path* of a file located on or accessible from the client.     Examples: 
- *Base64-encoded* string representing content of an image file.    Format:
[ data:[<MIME-type>][;base64],]<content>[:::<filename>]
data:application/pdf;base64,WTTVKM3OWFKFMERCMT5... :::IMAGE_FILE.PDF

The values in [ ] are optional. The values in < > are variables. NOTE: Neither [ ] nor < > should be included in image_source string.
content is the only required value. It is an image file content encoded as base64.
filename is a value assigned to WABarcode.File property of each barcode. Default is an empty string.
MIME-type identifies file format. e.g. application/pdf or image/tiff. The value is only for compatibility with data URI scheme. The Barcode reader will automatically identify file format based on content.

Most popular image formats are acceptable as image_source, including *PDF*, *TIF*, *JPEG* etc. Multi-page *PDF* and *TIF* files are supported
To specify several image sources in a single request separate them with the ` | ` character.
  • callback is a method implementing delReaderCallback delegate (required for ReadAsync() call)

  • obj is an Object parameters passed to delReaderCallback method. If not used set value to null (required for ReadAsync() call)

  • types is an optional string parameter (not case-sensitive) that contains comma-separated barcode types to read. An empty string is the same as 1d,2d. The list of valid type is available in the WABarcodeReader.validtypes variable. Barcodes in this list are:

    1d - same as Code39, Code128, Code93, Ucc128, Codabar, Interleaved2of5, Upca, Upce, Ean8, Ean13
    Code39 - Code 39 Full ASCII
    Code128 - Code 128
    Code93 - Code 93
    Codabar - Codabar
    Ucc128 - GS1-128
    Interleaved2of5 - Inteleaved 2 of 5
    Ean13 - EAN-13
    Ean8 - EAN-8
    Upca - UPC-A
    Upce - UPC-E
    2d - same as Pdf417, DatMatrix, QR
    Pdf417 - PDF417 code
    DataMatrix - DataMatrix code
    QR - QR code
    DrvLic - Driver License, ID Cards and military CAC ID
    postal - same as imb, bpo, aust, sing, postnet
    imb - US Post Intelligent Mail Barcode
    bpo - UK Royal Mail barcode (RM4SCC)
    aust - Australia Post barcode
    sing - Singapore Post barcode
    postnet - Postnet, Planet
    Code39basic - Code 93 Basic
    Patch - Patch code

  • directions is an optional string parameter, which limits the barcode recognition only to barcodes with the specified orientation. This limitation can reduce recognition time. Valid values are:

    an empty string (default) - read barcode in any direction and skew angle.
    horz - read only horizontal barcodes.
    vert - read only vertical barcodes.
    horz, vert - read only horizontal and vertical barcodes.

  • tbr_code is an optional integer parameter supplied by Inlite to addresses customer-specific requirements for barcode recognition. Read more about Targeted Barcode Reader (TBR). The default value is 0, meaning TBR is disabled.

Use barcode reading results

The following examples demonstrate processing of an Array of WABarcode. This array could be:

  • a return value of Read() methods
  • a value parameter of delReaderCallback method specified as callback parameter of ReadAsync() method.

Print each barcode text value, type and file name:

foreach (WABarcode barcode in barcodes)
    Console.WriteLine("Barcode Type:" + barcode.Type + "  File:" + barcode.File);

WABR Decode Values of a Driver License, ID Card or Military CAC Card. To obtain these values include DrvLic in the types parameter of the Read() or ReadAsync() calls.

foreach (string key in barcode.Values.Keys)
    Console.WriteLine(key + " : " + barcode.Values[key]);

WABarcode properties

Text - barcode text value (ASCII or UTF-8 if enabled) [string]
Data - binary data encoded in Pdf417, DataMatrix or QR barcodes [byte array]
Type - barcode type [string]
Page - page in multi-page PDF and TIF file [integer]
Top - top coordinate in pixels [integer]
Left - left coordinate in pixels [integer]
Right - right coordinate in pixels [integer]
Bottom - bottom coordinate in pixels [integer]
File - file name of image file. Depending on image_source type it is
            a URL value, base-name of Path, filename of Base64-encoded string (if present) [string]
Rotation - rotation of barcode on a page. Values: none, upsideDown, left, right or diagonal [string]
Meta - object representing barcode meta-data [XmlDocument object]
Values - Driver License fields, such as last name, date of birth etc. [Dictionary<string, string>]


Web API Barcode Reader - .NET SDK







No releases published