本教程展示如何在NodeJS应用程序中使用LEADTOOLS云服务提取文件中的条形码数据。
概述 | |
---|---|
总结 | 本教程介绍如何制作ExtractBarcode 请求并在NodeJS应用程序中使用LEADTOOLS云服务处理结果。 |
完成时间 | 30分钟 |
项目 | 下载教程项目(125kb) |
平台 | LEADTOOLS云服务API |
IDE | Visual Studio 2019 |
语言 | NodeJS |
开发许可 | 下载LEADTOOLS |
用另一种语言试试 |
|
请务必查看以下站点,以获得有关LEADTOOLS云服务API的信息。
LEADTOOLS服务计划提供:
服务计划 | 描述 |
---|---|
免费试用 | 免费评估 |
页面包 | 预付费页包 |
订阅 | 预付月处理页 |
要进一步了解这些产品,请参阅托管云服务页面。
如需获取应用ID和应用密码,请参见使用LEADTOOLS托管云服务创建帐户和应用程序.
创建项目并添加包之后,就可以开始编码了。
在解决方案资源管理器,打开server.js
.在顶部添加以下变量。
//制作和处理LEADTOOLS CloudServices的ExtractBarcode请求结果的简单脚本。
常量Axios = require(“axios”);
常量FormatsEnum = {
png: 1、
jpeg: 2
tiff: 3,
pdf: 4
pdfa: 5
pdfImage: 6,
pdfImageOverText: 7,
pdfaImageOverText: 8
多克斯:9,
docxFramed: 10,
rtf: 11,
rtfFramed: 12,
txt: 13,
txtFramed: 14,
};
常量servicesUrl =“https://azure.leadtools.com/api/”;
//文件中要标记进行处理的第一页
常量firstPage = 1;
//发送-1值将向服务指示应该处理文件中的其余页面。
常量lastPage = -1;
//逗号分隔的条形码符号字符串。传递空字符串将导致服务默认使用Popular。
常量象征学="";
//我们将通过URl上传文件。也可以通过向请求添加PostFile来传递文件。每个请求只接受一个文件。
//服务将使用以下优先级来确定请求试图做什么GUID > URL >请求正文内容
常量fileURL =
“http://demo.leadtools.com/images/cloud_samples/barcode_sample.tif”;
常量recognitionUrl =
servicesUrl +
“认可/ ExtractBarcode吗?珍宝“=”+
珍宝“+
" &lastPage = "+
lastPage +
" &fileurl = "+
fileURL +
“象征学= "+
象征学;
添加一个axios.post
调用来处理ExtractBarcode
请求以及recognitionCallback
函数来捕获GUID并将其提供给下一节。这将发送一个ExtractBarcode
请求到LEADTOOLS云服务API,如果成功,将返回一个唯一标识符(GUID),然后使用这个GUID进行查询。
axios
.post(recognitionUrl, {}, getRequestOptions(recognitionUrl))
.then((res) => {
recognitionCallback (res。错误,res, res.data);
})
.抓((err) => {
console.error(错);
});
//如果上传文件为多部分内容:
/*const uploadUrl = servicesUrl + '识别/提取条形码?firstPage=' + firstPage + '&lastPage=' + lastPage;
const form = new FormData();
的形式。追加(“文件”,fs.createReadStream('路径\ \ inputFile '));
axios.post(uploadUrl, form, getRequestOptions(uploadUrl)).then((res) => {
recognitionCallback (res。错误,res, res.data);
})。Catch ((err) => {
console.error(错);
}); * /
函数recognitionCallback(错误,响应,正文){
如果(!错误&&响应。状态=== 200){
常量Guid =身体;
console.log ("服务返回的唯一ID: "+ guid);
queryServices (guid);
}
}
接下来,创建一个async函数queryServices (guid)
提供的GUIDExtractBarcode
请求。如果成功,响应体将包含JSON格式的所有请求数据。
异步函数queryServices (guid) {
//查询请求的状态。如果请求尚未完成,此函数将递归地调用自身,直到文件完成为止。
常量queryUrl = servicesUrl +“查询?id = "+ guid;
等待axios
.post(queryUrl, {}, getRequestOptions(queryUrl))
.then((res) => {
常量Results = res.data;
如果(
res。错误& &
结果(“FileStatus”== 100 &&
结果(“FileStatus”== 123
) {
console.log ("文件已完成处理,返回代码:"+ res.status);
console.log(结果“FileStatus”]);
如果(结果“FileStatus”== 200) {
返回;
}
console.log (“结果:\ n”);
parseJson(结果“RequestData”]);
}其他的{
//文件尚未处理完毕。
返回新Promise((resolve) => {
setTimeout(() => {
//睡眠5秒后再尝试
解决(queryServices (guid));//再次调用该方法。
}, 5000);
});
}
})
.抓((err) => {
console.error(错);
});
}
然后,创建函数parseJson (jsonObject)
来处理返回的JSON数据。
函数parseJson (jsonObject) {
//解码LEADTOOLS CloudServices返回的JSON对象的函数。
为(设I = 0;i < jsonObject.length;我+ +){
let currentRequest = jsonObject[i];
console.log (“服务类型:”+ currentRequest [“ServiceType”]);
如果(
currentRequest [“ServiceType”) = = =“识别”& &
currentRequest [“RecognitionType”) = = =“条形码”
) {
console.log (“识别方法:”+ currentRequest [“RecognitionType”]);
console.log (“条码数据:\n”);
currentRequest [“数据”].forEach((barcode) => {
console.log (象征:“+条形码(“象征”]);
console.log (“价值:“+条形码(“价值”]);
console.log (”界限:“+条形码(“界限”]);
console.log (“旋转角度:”+条形码(“RotationAngle”]);
console.log ("------------------------------------");
});
}
}
}
最后,创建函数getRequestOptions (url)
属性的头和授权axios.post
连接来请求GUID和JSON数据。上面写着替换为应用程序ID
而且替换为应用程序密码
请务必输入相应的应用程序ID和密码。
函数getRequestOptions (url) {
常量appId =“替换为应用程序ID”;
常量密码=“替换为应用程序密码”;
常量token = Buffer.from(' ${appId}:${password} ',“utf8 ") .toString (“base64”);
生成并返回HTTP请求选项的函数。
常量requestOptions = {
url: url、
数据:{},
//如果上传文件为多部分内容,删除content - length头。
标题:{
“内容长度”: 0,
授权:基本${token},
},
};
返回requestOptions;
}
按下运行项目Ctrl + F5,或选择调试->不调试启动.
如果正确地执行了这些步骤,将出现控制台,应用程序将显示来自返回的JSON数据的已解析的检查信息。
本教程展示了如何通过LEADTOOLS云服务API提取条形码信息。