Quantcast
Channel: Xiao Ling – Dynamsoft Developers
Viewing all articles
Browse latest Browse all 239

How to Wrap Dynamsoft Linux Barcode SDK for Node.js

$
0
0

From version 4.x to 5.x, Dynamsoft improved Barcode SDK performance with a big leap. Unfortunately, only Windows edition is available for download so far. In this post, I will share how to create a Node.js extension with the preview version of Dynamsoft Linux Barcode SDK 5.2. If you are interested in Windows edition, please read – Building Node.js Barcode Addon with DBR v5.0.

Linux Environment: Ubuntu on Windows

If you are using Windows 10, Virtual Machine is not necessary for Linux development. I’d like to use the Linux subsystem installed from Windows Store:

Ubuntu on Windows

 

Environment Configuration

Open cmd.exe > bash. Install essential development tools ‘make‘ and ‘g++‘:

sudo apt-get install make g++

Download Node.js Linux binary (x64) and extract the package:

tar -xvf node-v8.4.0-linux-x64.tar.xz

Export Node.js bin path in ~/.bashrc:

export PATH=/mnt/f/zip/node-v8.4.0-linux-x64/bin:$PATH

Make the change work:

source ~/.bashrc

Extract dbr_linux_5.2.tar.gz:

tar -xvf dbr_linux_5.2.tar.gz

Create a symlink for libDynamsoftBarcodeReaderx64.so:

sudo ln -s <Your PATH>/libDynamsoftBarcodeReaderx64.so /usr/lib/libDynamsoftBarcodeReader.so

Install node-gyp:

npm install -g node-gyp

Node.js Extension

Let’s get started with binding.gyp:

{
    "targets": [
      {
        'target_name': "dbr",
        'sources': [ "dbr.cc" ],
        'conditions': [
            ['OS=="linux"', {
                'defines': [
                  'LINUX_DBR',
                ],
                'libraries': [
                    "-lDynamsoftBarcodeReader"
                ]
              }]
        ]
      }
    ]
  }

In this file, we define the module name, source code files, and libraries. To make -lDynamsoftBarcodeReader work, please ensure that you have generated the symlink (/usr/lib/libDynamsoftBarcodeReader.so) for libDynamsoftBarcodeReaderx64.so beforehand.

Create dbr.cc. The code is same to Windows edition.

Configure building environment:

node-gyp configure

Build the project:

node-gyp build

Import the module to Node.js app:

var dbr = require('./build/Release/dbr');
var fs = require('fs');
var barcodeTypes = 0x3FF | 0x2000000 | 0x8000000 |
                   0x4000000;  // 1D, QRCODE, PDF417, DataMatrix


function decodeFileStreamAsync(fileName) {
  let stats = fs.statSync(fileName);
  let fileSize = stats["size"];

  fs.open(fileName, 'r', function(status, fd) {
    if (status) {
      console.log(status.message);
      return;
    }
    let buffer = new Buffer(fileSize);
    fs.read(fd, buffer, 0, fileSize, 0, function(err, bytesRead, data) {
      dbr.decodeFileStreamAsync(buffer, fileSize, barcodeTypes, function(msg) {
        console.log(fileName);
        let result = null;
        for (index in msg) {
          result = msg[index];
          console.log("Format: " + result['format']);
          console.log("Value : " + result['value']);
        }
        console.log("Done............................................................\n");
      });
    });
  });
}

dbr.initLicense(
    "t0068MgAAAGvV3VqfqOzkuVGi7x/PFfZUQoUyJOakuduaSEoI2Pc8+kMwjrojxQgE5aJphmhagRmq/S9lppTkM4w3qCQezxk=");

Run a test:

node test.js -f test.tif

linux barcode sdk

How to Get the Linux Barcode SDK

Contact support@dynamsoft.com to get the download link.

Source Code

https://github.com/dynamsoft-dbr/linux-barcode-sdk-node-wrapper

The post How to Wrap Dynamsoft Linux Barcode SDK for Node.js appeared first on Code Pool.


Viewing all articles
Browse latest Browse all 239

Latest Images

Trending Articles



Latest Images