在这篇文章中,我们将展示一个非常简单的方法构建一个自定义的 Node 模块,该模块封装了Dynamsoft Barcode Reader SDK ,支持 Windows、Linux 和 OS X,同时我们将演示如何集成这块模块实现一个在线的条形码读取应用。
越来越多的 Web 开发者选择 Node 来构建网站,因为使用 JavaScript 来开发复杂的服务器端 Web 应用越来越便利。为了扩展在不同平台下的 Node 的功能,Node 允许开发者使用 C/C++ 来创建扩展。
介绍
Dynamsoft Barcode Reader 为 Windows、Linux 和 OS X 提供条形码解析的 C/C++ 共享库。其最大的优势是适用于多种高级编程语言,包括 JavaScript,Python,Java,Ruby,PHP 等,只要可以封装 C/C++ API 作为一个扩展就可以使用。不管是什么编程语言,最终只需要简单几行代码即可完成条形码的解析。
支持 1D/2D 条形码类型
Code 39,Code 93,Code 128,Codabar,Interleaved 2 of 5,EAN-8,EAN-13,UPC-A,UPC-E,Industrial 2 of 5 QRCode DataMatrix PDF417
支持图像类型
BMP,JPEG,PNG,GIF,TIFF,PDF
运行环境
Windows,Linux & Mac Node v5.5.0
Node.js 条形码扩展
Node.js 扩展使用 C/C++ 编写的动态链接的共享对象。如果你没有接触过这方面的技术,可以阅读 官方教程 。
创建扩展
创建名为 dbr.cc 的文件,并添加方法 DecodeFile:
解析来自 JavaScript 传递过来的参数
解析条形码图像:
将条形码转成字符串:
}
将结果转成 v8 对象:
构建扩展
要求:
Windows: 需要安装 DBR for Windows,visual Studio,and Python v2.7.
Linux: 安装 DBR for Linux.
Mac: 安装 DBR for Mac 和 Xcode.
安装 node-gyp:
npm install -g node-gyp
创建 binding.gyp 用于多平台编译:
将 DRB 安装目录替换成你机器上的实际目录。
配置构建环境:
node-gyp configure
可以在 Mac 上你会碰到下面的错误:
error: xcode-select: error: tool 'xcodebuild' requires Xcode,but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
解决办法是:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
构建项目:
node-gyp build
在线条形码解析
你已经成功的构建了 Node 的条形码解析模块,现在可以创建一个简单的条形码读取应用。
安装 Express 和 Formidable:
npm install express npm install formidable
使用 Express 创建一个简单应用:
使用 Formidable 从表单中提取图像数据:
});
} else { // read barcode image url
var tmpFileName = path.join(__dirname,'tmp.jpg');
var tmp = fs.createWriteStream(tmpFileName);
var url = fields.fileToDownload;
console.log('url: ' + url);
http.get(url,function(response) {
response.pipe(tmp);
tmp.on('finish',function() {
tmp.close(function() {
});
});
});
}
});
});
});
导入条形码模块用来解析图像文件:
decodeBarcode(res,license,tmpFileName,barcodeType);
运行应用:
node server.js
访问 http://localhost:2016/index.htm:
以上所述是小编给大家介绍的Node.js 条形码识别程序构建思路详解,希望对大家有所帮助。