Dynamsoft BarcodeReader SDK is Barcode Scanning at a Speed of 500+ per Minute
Fastest scanning and decoding in the industry that can be applied in distinct scenarios:
Live video feed of multiple barcodes/QR codes
PDF files in an automated desktop service
Static images from high-resolution industrial cameras
The scan of multiple barcodes at once function further boosts the already impressive scanning and decoding efficiency.
Scan Challenging Barcodes and QR Codes
Robust and reliable enterprise-grade barcode detection algorithm that excels even in the most challenging conditions:
Multiple barcodes at once
Curved surfaces
Barcodes in motion
High-density barcodes
Low light and shadows
Barcodes in any orientation
Glare reflections
Skewed and wide angles
Blurred barcodes
Inverted color barcodes
Long distance
Low-resolution cameras
Incomparable Reading Rate and Accuracy
With an astonishing 34.9% more barcode recognized than the industry’s 2nd best, Dynamsoft Barcode Reader SDK beats 6 QR Code libraries and ranks the 1st for best recognition rate in the performance test for decoding 1000+ QR Codes in 16 image quality categories.
In this guide, you will learn step by step on how to build a barcode reading application with Dynamsoft Barcode Reader SDK using Java.
Note: Dynamsoft Barcode Reader provides both online and offline license options. The online license option might not work in an environment that doesn’t have network connection. In such case, you can get an offline trial license key via Customer Portal or by contacting us.
If you haven’t downloaded the SDK yet, download the Java Package
now from Dynamsoft website and unpack the package into the directory of your choice.
For this tutorial, we unpack it to
[INSTALLATION FOLDER]
, change it to your unpacking path for the following content.
Let’s start by creating a console application which demonstrates how to use the minimum code to read barcodes from an image file.
You can download the entire source code here.
Open Eclipse. Go to File > New > Project, create a new Java project DBRJavaSample
.
Add a new Class named DBRJavaSample
into the project.
Right click on Project -> Properties > Java Build Path > Libraries > Add external JARs, Browse to [INSTALLATION FOLDER]\lib
and Select dynamsoft-barcodereader-{version number}.jar
.
Import the package in the file DBRJavaSample.java
import com.dynamsoft.dbr.*;
Initialize the license key.
BarcodeReader.initLicense("<insert DBR license key here>");
Please replace
with a valid DBR licensekey. There are two ways to obtain one:
- Search
initLicense
and find the license from[INSTALLATION FOLDER]/samples/BarcodeReaderDemo/src/com/dynamsoft/demo/BarcodeReaderDemo.java
.- Request a trial license from Customer Portal.
Create an instance of Dynamsoft Barcode Reader.
- BarcodeReader reader = BarcodeReader.getInstance();
- if(reader != null)
- {
- // Add your code here to call decoding method, process barcode results and so on
- // ...
- // Recycle the instance
- reader.recycle();
- }
Set barcode format and count to read.
- PublicRuntimeSettings runtimeSettings = reader.getRuntimeSettings();
- runtimeSettings.barcodeFormatIds = EnumBarcodeFormat.BF_ONED | EnumBarcodeFormat.BF_QR_CODE;
- runtimeSettings.barcodeFormatIds_2 = EnumBarcodeFormat_2.BF2_POSTALCODE | EnumBarcodeFormat_2.BF2_DOTCODE;
- runtimeSettings.expectedBarcodesCount = 10;
- reader.updateRuntimeSettings(runtimeSettings);
The barcode formats to enable is highly application-specific. We recommend that you only enable the barcode formats your application requires. Check out Barcode Format Enumeration for full supported barcode formats.
If you know exactly the barcode count you want to read, specify
expectedBarcodesCount
to speed up the process and improve the accuracy.
The Barcode Reader SDK comes with a large array of runtime settings to optimize the performance of the library. To learn about all the runtime settings, please visit the RuntimeSettings API page. To learn more about the cases and situations in which the settings can help, please visit the Explore Features page.
Get and output barcode results.
- try
- {
- TextResult[] results = reader.decodeFile("[INSTALLATION FOLDER]/images/AllSupportedBarcodeTypes.png", "");
- if (results != null && results.length > 0) {
- System.out.println("Total barcodes found: " + results.length);
- for (int iIndex = 0; iIndex < results.length; iIndex++)
- {
- System.out.println("Barcode " + (iIndex + 1));
- System.out.println(" Barcode Format: " + results[iIndex].barcodeFormatString);
- System.out.println(" Barcode Text: " + results[iIndex].barcodeText);
- }
- }
- }
- catch (BarcodeReaderException exp)
- {
- System.out.println(exp.getMessage());
- }
For the error handling mechanism, the SDK throws BarcodeReaderException for each function. You should add codes for exception handling based on your needs.
The SDK returns multiple barcode information, including barcode count, barcode format, barcode text, location, barcode raw data, etc. Check out TextResult for full supported result data.
Destroy the instance to release all resources.
- if(reader != null)
- {
- reader.recycle();
- }