本教程展示了如何在NodeJS应用程序中使用LEADTOOLS云服务将文件转换为另一种格式。
| 概述 | |
|---|---|
| 总结 | 本教程将介绍如何制作转换请求并在NodeJS应用程序中使用LEADTOOLS云服务处理结果。 |
| 完成时间 | 30分钟 |
| 项目 | 下载教程项目(125kb) |
| 平台 | LEADTOOLS云服务API |
| IDE | Visual Studio 2019 |
| 语言 | NodeJS |
| 开发许可 | 下载LEADTOOLS |
| 用另一种语言试试 |
请务必查看以下站点以获取有关LEADTOOLS云服务API的信息。
LEADTOOLS服务计划提供:
| 服务计划 | 描述 |
|---|---|
| 免费试用 | 免费评估 |
| 页面包 | 预付页面包 |
| 订阅 | 预付月处理页面 |
要进一步了解这些产品,请参阅LEADTOOLS托管云服务页面。
申请ID和申请密码请参见使用LEADTOOLS托管云服务创建帐户和应用程序.
创建项目并添加包之后,就可以开始编码了。
在解决方案资源管理器,打开server.js.在顶部添加以下变量。
//创建和处理到LEADTOOLS CloudServices的转换请求的结果的简单脚本。常量axios =要求(“axios”);常量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/”;//要标记处理的文件的第一页常量珍宝= 1;//发送一个-1值将向服务表明文件中的其余页面应该被处理。常量lastPage = 1;//文件输出格式对应的Enum。出于本脚本的目的,我们将转换为tif。常量fileFormat = FormatsEnum.tiff;//我们将通过URL上传文件。还可以通过向请求添加PostFile来传递文件。每个请求只接受一个文件。//服务将使用以下优先级,当确定一个请求正在尝试做什么GUID > URL >请求正文内容常量fileURL =“https://demo.leadtools.com/images/pdf/leadtools.pdf”;常量conversionUrl =servicesUrl +“转换/转换?珍宝“=”+珍宝“+" &lastPage = "+lastPage +" &fileurl = "+fileURL +"格式= "+fileFormat;
添加一个axios.post调用来处理转换请求以及conversionCallback函数来捕获GUID并将其提供给下一节。这发出了一个转换请求到LEADTOOLS Cloud Services API,如果成功,将返回一个惟一标识符(GUID),然后使用该GUID进行查询。
axios. post ({}, conversionUrl getRequestOptions (conversionUrl))不要犹豫((res) = > {conversionCallback (res。错误,res, res.data);}).抓((err) = > {console.error(错);});//如果将一个文件作为多个部分的内容上传:/*const conversionUrl = servicesUrl + '转换/转换?firstPage=' + firstPage + '&lastPage=' + lastPage + '&format=' + fileFormat;const form = new FormData();的形式。追加(“文件”,fs.createReadStream('路径\ \ inputFile '));axios.post(conversionUrl, form, getRequestOptions(conversionUrl)).then((res) => {conversionCallback (res。错误,res, res.data);})。Catch ((err) => {console.error(错);}); * /函数conversionCallback(错误,响应,体){如果(!& &错误响应。状态=== 200){常量guid =身体;console.log ("服务返回的唯一ID: "+ guid);queryServices (guid);}}
接下来,创建一个名为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);如果(结果“FileStatus”== 200) {返回;}console.log (“结果:\ n”);parseJson(结果“RequestData”]);}其他的{//文件尚未完成处理。返回新承诺((解决)= > {setTimeout (() = > {//等待5秒再尝试解决(queryServices (guid));//再次调用该方法。}, 5000);});}}).抓((err) = > {console.error(错);});}
然后,创建函数parseJson (jsonObject)处理返回的JSON数据。
函数parseJson (jsonObject) {//解码LEADTOOLS CloudServices返回的JSON对象的函数。为(设I = 0;我< jsonObject.length;我+ +){let currentRequest = jsonObject[i];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 =“以申请编号取代”;常量密码=“以申请密码代替”;常量令牌= Buffer.from(“$ {appId}: ${密码}',“utf8 ") .toString (“base64”);//生成并返回HTTP请求选项。常量requestOptions = {url: url、数据:{},//如果上传一个文件作为多部分内容,删除content - length头文件。标题:{“内容长度”:0,授权:“基本${牌}”,},};返回requestOptions;}
通过按运行项目Ctrl + F5,或选择调试->启动不调试.
如果正确地执行了步骤,控制台将出现,应用程序将显示从返回的JSON数据中解析的检查信息。
本教程展示了如何通过LEADTOOLS Cloud Services API转换文件。