Web API Barcode Reader Server (WABR) offers a REST API for the Inlite Research ClearImage Barcode Recognition technology.
This wabr-java
SDK simplifies the WABR client-side Java development.
This repository includes Eclipse project that includes source for wabr-java
library and test classes.
To display use UTF-8 values in Eclipse Console configure Debug Configuration: Debug -> (select configuration) -> Debug Configuration -> Common -> Encoding -> Other = UTF-8
import com.inlite.wabr.WABarcodeReader;
import com.inlite.wabr.WAUtils;
....
String authorization = "";
String serverUrl = "";
WABarcodeReader reader = new WABarcodeReader(serverUrl, authorization);
Where
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
wabr.inliteresearch.com
.
authorization
is a value set inAuthorization
field of the HTTP Request header. Ifauthorization
is an empty string, then the value is set from theWABR_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 sales@inliteresearch.com.
Use the Read()
or ReadOpts()
methods to synchronously obtain barcode values as an Array of WABarcode
objects
try
{
WABarcode[] barcodes = reader.Read(image_source);
// OR
WABarcode[] barcodes = reader.ReadOpt(image_source, types, directions, tbt_code);
// Process barcode reading results
// e.g. ShowBarcodes(barcodes);
}
catch (RuntimeException ex)
{
System.out.println("EXCEPTION: " + ex.getMessage());
}
Use the ReadAsync()
or ReadOptsAsync()
methods to asynchronously. To process both barcodes and exceptions both methods use an instance of a class derived from delReaderCallback
class.
class ReaderCallback implements delReaderCallback {
@Override
public void procEvent(String evnt, Object value, Object obj)
{
if (value == null)
return;
switch (evnt)
{
case "error":
System.out.println("EXCEPTION: " + value.toString());
break;
case "barcodes":
// Process barcode reading results in (WABarcode[])value
// e.g. ShowBarcodes((WABarcode[])value);
break;
}
}
}
...
delReaderCallback callback = new ReaderCallback();
reader.ReadAsync(image_source, callback, obj);
// OR
reader.ReadOptAsync(image_source, callback, obj, types, directions, tbt_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://
orfile://
. Examples:
https://wabr.inliteresearch.com/SampleImages/1d.pdf ttp://upload.wikimedia.org/wikipedia/commons/0/07/Better_Sample_PDF417.png
- URL of Internet-based file. The name should start with
- *Path* of a file located on or accessible from the client. Examples:
```
c:/image_folder/some_image_file.tif
\\COMPUTER_NAME\another_folder\another_file.pdf
```
- *Base64-encoded* string representing content of an image file. Format:
```
[ data:[<MIME-type>][;base64],]<content>[:::<filename>]
```
Example:
```
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 an instance of class derived fromdelReaderCallback
class. It should implementingprocEvent()
method. -
obj
is anObject
parameters passed toprocEvent()
method. If not used set value tonull
-
types
is an optional string parameter (not case-sensitive) that contains comma-separated barcode types to read. An empty string is the same as1d,2d
. The list of valid type is available in theWABarcodeReader.validtypes
variable. Barcodes in this list are:1d
- same asCode39, 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 asPdf417, DatMatrix, QR
Pdf417
- PDF417 code
DataMatrix
- DataMatrix code
QR
- QR code
DrvLic
- Driver License, ID Cards and military CAC ID
postal
- same asimb, 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.
The following examples demonstrate processing of an Array of WABarcode
. This array could be:
- a return value of
Read()
orReadOpt()
methods - a
value
parameter ofprocEvent()
method in an instance of a class specified ascallback
parameter ofReadAsync()
andReadOptAsync()
methods.
Print each barcode text value, type and file name:
for (WABarcode barcode : barcodes)
{
System.out.println("Barcode Type:" + barcode.getType() + " File:" + barcode.getFile());
System.out.println(barcode.getText());
}
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 ReadOpt()
or ReadOptAsync()
calls.
for (String key : barcode.getValues().keySet())
System.out.println(key + " : " + barcode.getValues().get(key));
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
- XML document object representing barcode meta-data [Document object]
Values
- Driver License fields, such as last name, date of birth etc. [HashMap<String, String> object: key-field name string as key, value - field value string]