合并- node . js

本教程展示了如何使用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: 2tiff: 3,pdf: 4pdfa: 5pdfImage: 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。

另请参阅

net
iOS
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。