本教程展示了如何使用LEADTOOLS云服务合并文档节点。JS应用程序。
概述 | |
---|---|
总结 | 本教程介绍了如何制作合并 请求和处理结果使用LEADTOOLS云服务节点。JS应用程序。 |
完成时间 | 30分钟 |
项目 | 下载教程项目(125 KB) |
平台 | LEADTOOLS云服务API |
IDE | Visual Studio 2019 |
语言 | node . js |
开发许可 | 下载LEADTOOLS |
试试用另一种语言 |
一定要检查以下网站信息LEADTOOLS云服务API。
LEADTOOLS服务计划发行:
服务计划 | 描述 |
---|---|
免费试用 | 免费评估 |
页面包 | 预付页面包 |
订阅 | 每月预付处理页面 |
进一步探索产品,请参考LEADTOOLS托管云服务的定价信息>服务计划方面。
定价细节,请参考//m.ahtuanjie.com/sdk/188金宝搏的网址客服products/hosted-services定价>页面包和订阅。
获得必要的应用程序ID和密码,请参考创建一个帐户与LEADTOOLS承载云服务和应用程序。
项目创建和包添加,可以开始编码。
在解决方案资源管理器,打开server.js
。添加以下变量。
/ /简单的脚本展示如何使用Merge LEADTOOLS云服务的API。
常量axios =要求(“axios”);
/ /如果上传一个文件作为多部分的内容,我们需要安装的文件系统库。
/ / const fs =要求(fs);
常量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/”;
常量tiffUrl =“http://demo.leadtools.com/images/cloud_samples/ocr1气管无名动脉瘘管的- 4.”;
常量pdfUrl =“https://demo.leadtools.com/images/pdf/leadtools.pdf”;
让firstFileId =”“;
让secondFileId =”“;
常量outputFormat = FormatsEnum.pdf;
添加电话还是(tiffUrl firstFileUploadCallback);
匹配的函数还是(url,回调)
和firstFileUploadCallback(误差、响应体)
;此外,创建功能uploadSecondFile ()
和secondFileUploadCallback(误差、响应体)
。这些函数发送还是
请求LEADTOOLS云服务API,如果成功,每个文件将被发送到服务器和一个唯一标识符(GUID)将返回并存储供以后使用。
还是(tiffUrl firstFileUploadCallback);
函数还是(回调url) {
常量uploadUrl = " $ {servicesUrl}还是? forMerge =真正的&fileurl = $ {url} ';
axios
. post ({}, uploadUrl getRequestOptions (uploadUrl))
不要犹豫((res) = > {
回调(res。错误,res, res.data);
})
。抓((err) = > {
console.error(错);
});
/ /如果上传一个文件作为多部分内容:
/ * var uploadUrl = servicesUrl +“还是? forMerge = true”;
const形式= new FormData ();
的形式。追加(“文件”,fs.createReadStream('路径\ \ inputFile '));
axios.post(uploadUrl, form, getRequestOptions(uploadUrl)).then((res) => {
回调(res。错误,res, res.data);
})。抓住((err) = > {
console.error(错);
});* /
}
函数firstFileUploadCallback(误差、响应体){
如果(!& &错误响应。状态= = = 200){
firstFileId =身体;
console.log (“第一个文件ID:”+ firstFileId);
checkVerification (firstFileId uploadSecondFile);
}
}
函数uploadSecondFile () {
还是(pdfUrl secondFileUploadCallback);
}
函数secondFileUploadCallback(误差、响应体){
如果(!& &错误响应。状态= = = 200){
secondFileId =身体;
console.log (“第二个文件ID:”+ secondFileId);
checkVerification (secondFileId mergeFile);
}
}
为每个文件上传将执行验证检查,以确保文件提交到服务器。创建一个异步函数调用calllback checkVerification (id)
它利用文件上传请求id。
异步函数checkVerification (id、回调){
常量queryUrl = servicesUrl +“查询? id = "+身份证;
等待axios
. post ({}, queryUrl getRequestOptions (queryUrl))
不要犹豫((res) = > {
常量结果= res.data;
如果(res。错误& &结果(“FileStatus”]! = = 123){
console.log (验证完成返回码:“+ res.status);
如果(结果“FileStatus”)= = 122){
回调();
}其他的{
console.log (
“文件与文件状态,验证失败:+
结果(“FileStatus”]
);
}
}其他的{
/ /文件尚未完成处理。
返回新承诺((解决)= > {
setTimeout (() = > {
/ / 5秒后再次尝试睡觉
解决(checkVerification (id、回调));/ /调用该方法。
},5000);
});
}
})
。抓((err) = > {
console.error(错);
});
}
一旦验证文件是完整的和有效的合并
请求将需要发送的文件合并成一个。创建一个函数mergeFile ()
,提交合并请求之前收集的文件标识。
函数mergeFile () {
常量mergeUrl = " $ {servicesUrl}转换/合并?格式= $ {outputFormat} ';
常量选择= getRequestOptions (mergeUrl);
常量json = JSON.stringify ([
{
珍宝:1、
lastPage: 1、
文件标识:firstFileId,
},
{
页:[5,1、2、4、3],
文件标识:secondFileId,
},
]);
axios.post(mergeUrl, json, options).then((res) => {
console.log (“合并文件……”);
如果(res。错误& & res.status = = = 200) {
console.log (“合并命令成功”);
queryServices (firstFileId);
}其他的{
console.log (“合并失败与HTTP代码:“+ res.status);
console.log (res.data);
}
});
}
接下来,创建一个异步函数调用queryServices (guid)
利用提供的GUID合并
请求。如果成功身体将包含所有请求的响应以JSON格式的数据。
异步函数queryServices (guid) {
/ /函数查询请求的状态。如果请求尚未完成,这个函数将递归地调用自身,直到文件已经完成。
常量queryUrl = servicesUrl +“查询? id = "+ guid;
等待axios
. post ({}, queryUrl getRequestOptions (queryUrl))
不要犹豫((res) = > {
常量结果= res.data;
如果(
res。错误& &
结果(“FileStatus”]! = = 100 & &
结果(“FileStatus”]! = = 123
){
console.log (“文件处理完返回代码:+ res.status);
console.log(结果“FileStatus”]);
如果(结果“FileStatus”]! = = 200){
返回;
}
console.log (“结果:\ n”);
parseJson(结果“RequestData”]);
}其他的{
/ /文件尚未完成处理。
返回新承诺((解决)= > {
setTimeout (() = > {
/ / 5秒后再次尝试睡觉
解决(queryServices (guid));/ /调用该方法。
},5000);
});
}
})
。抓((err) = > {
console.error(错);
});
}
然后,创建函数parseJson (jsonObject)
处理返回的JSON数据。
函数parseJson (jsonObject) {
/ /函数来解码LEADTOOLS云服务返回的JSON对象。
为(让我= 0;我< jsonObject.length;我+ +){
让currentRequest = jsonObject[我];
console.log (服务类型:“+ currentRequest [“ServiceType”]);
如果(currentRequest [“ServiceType”)= = =“转换”){
console.log (url:“);
currentRequest [“url”].forEach ((url) = > {
console.log (url);
});
}
}
}
最后,创建函数getRequestOptions (url)
提供头和授权axios.post
连接请求GUID和JSON数据。在那里国家替换为应用程序ID
和替换为应用程序密码
一定要把你的应用程序ID和密码。
函数getRequestOptions (url) {
常量appId =“应用程序ID替换”;
常量密码=”替换为应用程序密码”;
常量令牌= Buffer.from (“$ {appId}: ${密码}',“utf8 ").toString (“base64”);
/ /函数来生成并返回HTTP请求的选项。
常量requestOptions = {
url: url、
数据:{},
/ /如果上传一个文件作为多部分的内容,删除内容长度头。
标题:{
“内容长度”:0,
授权:“基本${牌}”,
},
};
返回requestOptions;
}
按运行项目Ctrl + F5,或通过选择没有调试调试- >开始。
如果步骤正确,显示控制台和应用程序从返回的JSON数据解析检查信息。
本教程展示了如何合并文件通过LEADTOOLS云服务API。