nodejs-barcode
nodejs-barcode copied to clipboard
Node.js 1D/2D barcode detection SDK built with Dynamsoft Barcode Reader.
Node.js Barcode & QR Code SDK
The Node.js barcode QR code SDK is implemented by wrapping Dynamsoft Barcode Reader C++ SDK. It helps developers to build Node.js barcode and QR code scanning applications for Windows, Linux, macOS, Raspberry Pi and Jetson Nano.
Dynamsoft Barcode Reader SDK Version
v9.6.40
License Key for SDK
Pre-requisites
-
Platform-specific C/C++ compiler
-
node-gyp
npm i node-gyp -g
Supported Platforms
- Windows
- Linux
- macOS
Supported Barcode Symbologies
-
Linear Barcodes (1D)
- Code 39 (including Code 39 Extended)
- Code 93
- Code 128
- Codabar
- Interleaved 2 of 5
- EAN-8
- EAN-13
- UPC-A
- UPC-E
- Industrial 2 of 5
-
2D Barcodes
- QR Code (including Micro QR Code and Model 1)
- Data Matrix
- PDF417 (including Micro PDF417)
- Aztec Code
- MaxiCode (mode 2-5)
- DotCode
-
Patch Code
-
GS1 Composite Code
-
GS1 DataBar
- Omnidirectional,
- Truncated, Stacked, Stacked
- Omnidirectional, Limited,
- Expanded, Expanded Stacked
-
Postal Codes
- USPS Intelligent Mail
- Postnet
- Planet
- Australian Post
- UK Royal Mail
API
-
initLicense(license: string): void
-
createInstance(readerType: readerTypes): BarcodeReader
-
getVersion(): string
Asynchronous Methods
-
decodeFileAsync(filePath: string, format: formats, callback?: (err: Error | null, result?: BarcodeResult[]) => void, template?: string): void
-
decodeFileAsync(filePath: string, format: formats, template?: string): Promise<BarcodeResult[]>
-
decodeFileStreamAsync(stream: any, length: number, format: formats, callback?: (err: Error | null, result?: BarcodeResult[]) => void, template?: string): void
-
decodeFileStreamAsync(stream: any, length: number, format: formats, template?: string): Promise<BarcodeResult[]>
-
decodeBase64Async(base64String: string, format: formats, callback: (err: Error | null, result?: BarcodeResult[]) => void, template?: string): void
-
decodeBase64Async(base64String: string, format: formats, template?: string): Promise<BarcodeResult[]>
-
decodeYUYVAsync(data: any, width: number, height: number, format: formats, callback?: (err: Error | null, result?: BarcodeResult[]) => void, template?: string): void
-
decodeYUYVAsync(data: any, width: number, height: number, format: formats, template?: string): Promise<BarcodeResult[]>
-
decodeBufferAsync(buffer: any, width: number, height: number, stride: number, format: formats, callback?: (err: Error | null, result?: BarcodeResult[]) => void, template?: string): void
-
decodeBufferAsync(buffer: any, width: number, height: number, stride: number, format: formats, template?: string): Promise<BarcodeResult[]>
Synchronous Methods
-
decodeFile(filePath: string, format: formats, template?: string): BarcodeResult[]
-
decodeFileStream(stream: any, length: number, format: formats, template?: string): BarcodeResult[]
-
decodeBase64(base64String: string, format: formats, template?: string): BarcodeResult[]
-
decodeYUYV(data: any, width: number, height: number, format: formats, template?: string): BarcodeResult[]
-
decodeBuffer(buffer: any, width: number, height: number, stride: number, format: formats, template?: string): BarcodeResult[]
Template Usage
- Visit the barcode reader online demo.
- Customize parameters in advanced settings and then download the template.
For example:
let params = {
"ImageParameter": {
"Name": "Custom_143301_827",
"BarcodeFormatIds": [
"BF_ALL"
],
"DeblurLevel": 9,
"ExpectedBarcodesCount": 100,
"ScaleDownThreshold": 1200000,
"Timeout": 100000
},
"Version": "3.0"
};
template = JSON.stringify(params);
Quick Usage
Replace LICENSE-KEY
with your own license key.
const dbr = require('barcode4nodejs');
dbr.initLicense("LICENSE-KEY")
dbr.decodeFileAsync("YOUR IMAGE FILE", dbr.formats.OneD | dbr.formats.PDF417 | dbr.formats.QRCode | dbr.formats.DataMatrix | dbr.formats.Aztec, function(err, msg){
console.log(msg);
for (index in msg) {
result = msg[index];
console.log('Format: ' + result['format']);
console.log('Value : ' + result['value']);
console.log('x1: ' + result['x1']);
console.log('y1 : ' + result['y1']);
console.log('x2: ' + result['x2']);
console.log('y2 : ' + result['y2']);
console.log('x3: ' + result['x3']);
console.log('y3: ' + result['y3']);
console.log('x4: ' + result['x4']);
console.log('y4: ' + result['y4']);
console.log('page: ' + result['page']);
console.log('decoding time: ' + result['time']);
}
}, "");
// Or
(async function () {
try {
var result = await dbr.decodeFileAsync("YOUR IMAGE FILE", dbr.formats.OneD | dbr.formats.PDF417 | dbr.formats.QRCode | dbr.formats.DataMatrix | dbr.formats.Aztec, "");
console.log(result);
} catch (error) {
console.log(error);
}
})();
How to Customize and Build the Module
-
Get the source code:
git clone https://github.com/yushulx/nodejs-barcode.git
-
Download Dynamsoft C++ Barcode SDK. Copy header files to
src
folder and copy platform-specific shared libraries toplatforms
folder. -
Edit
src/dbr.cc
andindex.js
. -
Build the Node.js extension:
node-gyp configure node-gyp build
For Visual Studio 2019 Community
node-gyp configure --msbuild_path="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" --msvs_version=2017 node-gyp build
Examples
-
Command Line
node test.js -f MultiPage.pdf
-
Web
npm install node server.js
Open
http://localhost:2018/index.htm
in web browsers. -
Desktop Electron
cd src node-gyp rebuild --target=0.36.7 --arch=x64 --dist-url=https://atom.io/download/atom-shell cd examples/desktop-electron npm install npm start
-
Linux Camera
npm install v4l2camera node camera_barcode_reader.js
-
RESTful Service
npm install restify node server.js
Open
https://< ip >:2018
to scan barcodes in web browsers. -
OpenCV