NodeJs之词文件生成与解析的实现代码

  

  

<强>,1.1,介绍

  

1, officegen模块可以为微软Office 2007及更高版本生成Office Open XML文件。此模块不依赖于任何框架,您不需要安装微软的办公室,因此您可以将它用于任何类型的,JavaScript 应用程序。输出也是流而不是文件,不依赖于任何输出工具。此模块应适用于支持节点。js 0.10或更高版本的任何环境,包括Linux, OSX和窗户。

  

2, textract文本提取节点模块。

  

3, pdf2json是一个节点js模块解析和转换PDF从二进制到json格式,它是用PDF构建的,并通过浏览器外的交互式表单元素和文本内容解析对其进行扩展。其目标是在web服务中包装时启用带有交互式表单元素的服务器端PDF解析,并在作为命令行实用程序使用时启用将本地PDF解析为json文件。

  

<强> 1.2,需求

  

  

第一步:安装officegen

        cnpm安装officegen——保存      

第二步:引入officegen

        var officegen=要求(“officegen”);   var fs=要求(fs);   多克斯var=officegen(“多克斯”);//单词   var pptx=officegen (pptx);//pptx      

第三步:使用officegen多克斯

        …      多克斯。(“确定”,函数(书面){   控制台。日志(“Finish创建Word文件。创建\ nTotal字节:”+文字+“\ n”);   });         多克斯。(“错误”,函数(err) {   console.log(错);   });      …//var牵引=[‘身份证’,‘provinceZh’,‘leaderZh’,‘cityZh’,‘cityEn);//创建一个和表头对应且名称与数据库字段对应数据,便于循环取出数据   var pObj=多克斯。创造({对齐:“中心”});//创建行设置居中大标题   pObj。addText(“全国所有城市的,{大胆:真的,font_face: Arial, font_size: 18});//添加文字设置字体样式加粗大?/让towsLen=tows.length   让dataLen=data.length   (var=0;我& lt;dataLen;我+ +){//循环数据库得到的数据,因为取出的数据格式为//[{" id ":“101010100”、“provinceZh”:“北京”、“leaderZh”:“北京”、“cityZh”:“北京”、“cityEn”:“北京”},{…………},{…………}]/* * * * * * * * * * * * * * * * * * * * * * * * *文本* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *///var pObj=docx.createP();//创建一行//pObj.addText (' ($ {i + 1}),,{大胆:真的,font_face: Arial,});//pObj。addText(“省级:“,{大胆:真的,font_face: Arial,});//pObj。addText(“${数据[我][' provinceZh ']}”,);//pObj。addText(“市级:“,{大胆:真的,font_face: Arial,});//pObj。addText(“${数据[我][' leaderZh ']}”);//pObj。addText(“县区:“,{大胆:真的,font_face: Arial,});//pObj.addText(“${数据[我][' cityZh ']}”);/* * * * * * * * * * * * * * * * * * * * * * * * *表格* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */让回转支承=[[我](“id”)的数据,数据[我][' provinceZh '],[我][' leaderZh ']的数据,数据[我][' cityZh ']]   table.push(回转支承)   }   多克斯。不知道(表、tableStyle);   var=fs.createWriteStream (out.docx);//文件写入   出去了。(“错误”,函数(err) {   console.log(错);   });   var=结果docx.generate(出);//服务端生成词   res.writeHead(200年,{//注意这里的类型设置,导出不同文件类型值不同应用程序/vnd.openxmlformats-officedocument.wordprocessingml.document   “内容类型”:“应用程序/vnd.openxmlformats-officedocument.wordprocessingml.document”,   “附加”:“依恋;文件名=' +时刻(新的日期().getTime ()) .format (YYYYMMDDhhmmss) +”。docx”   });   docx.generate (res);//客户端导出词      

第四步:抛出接口

        路由器。把(/下载/词,函数(点播,res) {   console.log (“exportWord - - - - - - - - - - - - -”);   多克斯。(“确定”,函数(书面){   控制台。日志(“Finish创建Word文件。创建\ nTotal字节:”+文字+“\ n”);   });         多克斯。(“错误”,函数(err) {   console.log(错);   });   让字段={   id:”,   provinceZh:”,   leaderZh:”,   cityZh:”,   cityEn:“   }   var=[表   [{   瓦尔:“没有。”   选择:{   对齐:“中心”,   vAlign:“中心”,   深圳:“36”//cellColWidth: 42岁//b:真的,//深圳:“48”,//梅毒性心脏病:{//填充:“7 f7f7f”,//themeFill:“text1”,//皌hemeFillTint”:“80”//},//fontFamily:“Avenir书”   }   }, {   瓦尔:“省份”,   选择:{   对齐:“中心”,   vAlign:“中心”,   深圳:“36”//b:真的,//颜色:“A00000”,//调整:“正确的”,//梅毒性心脏病:{//填充:“92 cddc”,//themeFill:“text1”,//皌hemeFillTint”:“80”//}   }   }, {   瓦尔说:“市”,   选择:{   对齐:“中心”,   vAlign:“中心”,   深圳:“36”//cellColWidth: 42岁//b:真的,//深圳:“48”,//梅毒性心脏病:{//填充:“92 cddc”,//themeFill:“text1”,//皌hemeFillTint”:“80”//}   }   }, {   瓦尔:“区/县”,   选择:{   对齐:“中心”,   vAlign:“中心”,   深圳:“36”//cellColWidth: 42岁//b:真的,//深圳:“48”,//梅毒性心脏病:{//填充:“92 cddc”,//themeFill:“text1”,//皌hemeFillTint”:“80”//}   }   }),   ]      var tableStyle={   tableColWidth: 2400,   tableSize: 24日   tableColor:“艾达”,   tableAlign:“中心”,   tableVAlign:“中心”,   tableFontFamily:“Comic Sans MS”,   边界:真   }      MongoDbAction。getFieldsByConditions (AllCity,{}、字段功能(呃,数据){//根据需求查询想要的字段   如果(err) {//执行出的错   其他}{//var牵引=[‘身份证’,‘provinceZh’,‘leaderZh’,‘cityZh’,‘cityEn);//创建一个和表头对应且名称与数据库字段对应数据,便于循环取出数据   var pObj=多克斯。创造({对齐:“中心”});//创建行设置居中大标题   pObj。addText(“全国所有城市的,{大胆:真的,font_face: Arial, font_size: 18});//添加文字设置字体样式加粗大?/让towsLen=tows.length   让dataLen=data.length   (var=0;我& lt;dataLen;我+ +){//循环数据库得到的数据,因为取出的数据格式为//[{" id ":“101010100”、“provinceZh”:“北京”、“leaderZh”:“北京”、“cityZh”:“北京”、“cityEn”:“北京”},{…………},{…………}]/* * * * * * * * * * * * * * * * * * * * * * * * *文本* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *///var pObj=docx.createP();//创建一行//pObj.addText (' ($ {i + 1}),,{大胆:真的,font_face: Arial,});//pObj。addText(“省级:“,{大胆:真的,font_face: Arial,});//pObj。addText(“${数据[我][' provinceZh ']}”,);//pObj。addText(“市级:“,{大胆:真的,font_face: Arial,});//pObj。addText(“${数据[我][' leaderZh ']}”);//pObj。null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

NodeJs之词文件生成与解析的实现代码