转换- NodeJS

本教程展示了如何在NodeJS应用程序中使用LEADTOOLS Cloud Services将文件转换为另一种格式。

概述
总结 本教程介绍如何制作转换请求并在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/”//文件中标记为处理的第一页常量firstPage = 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)).then((res) => {conversionCallback (res。错误,res, res.data);})((err) => {console.error(错);});//如果上传文件为多部分内容:/*const converonurl = servicesUrl + 'Conversion/Convert?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(error, response, body) {如果(!错误&&响应。状态=== 200){常量Guid = body;console.log (服务返回的唯一ID:+ guid);queryServices (guid);}}

接下来,创建一个名为queryServices (guid)类提供的GUID转换请求。如果成功,响应体将以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);如果(结果“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”) = = =“转换”) {console.log (url:“);currentRequest [“url”.forEach((url) => {console.log (url);});}}}

最后,创建函数getRequestOptions (url)提供标头和授权axios.post连接,以便通过请求GUID和JSON数据。上面写着替换为应用程序ID替换为应用程序密码请务必输入相应的应用程序ID和密码。

函数getRequestOptions (url) {常量appId =“以申请编号代替”常量密码=“以应用程式密码取代”常量token = Buffer.from(' ${appId}:${password} ',“utf8 ") .toString (“base64”);//生成并返回HTTP请求选项。常量requestOptions = {url: url、数据:{},//如果上传的文件是多部分内容,删除content - length头。标题:{“内容长度”: 0,授权:'基本${token} ',},};返回requestOptions;}

运行项目

按下运行项目Ctrl + F5,或选择Debug ->启动不调试

如果正确地执行了这些步骤,控制台将出现,应用程序将显示从返回的JSON数据中解析的检查信息。

转换文件结果

总结

本教程展示了如何通过LEADTOOLS Cloud Services API转换文件。

另请参阅

iOS
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2022领先科技有限公司版权所有。