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

2020-06-17 05:51:28易采站长站整理

'Content-disposition': 'attachment; filename=surprise.pptx'
});
pptx.generate(res);// 客户端导出ppt

});

三,文件上传解析

3.1,word文档解析

第一步:安装textract


cnpm install textract --save

第二步:引入textract


//引入textract解析word模块
var textract = require('textract');//对于docx文件,您可以使用textract,它将从.docx文件中提取文本。
var fs = require('fs');

第三步:解析文档


function parseWord(excelConfig, res) {
textract.fromFileWithPath(excelConfig.excel_Dir, function (error, text) {
if (error) {
res.status(200).json({
httpCode: 200,
message: '导入解析失败',
data: error,
returnValue: 0
});
} else {
res.status(200).json({
httpCode: 200,
message: '导入成功',
data: {
result: text
},
returnValue: 1
});
}
})
}

第四步:解析后删除文档


fs.unlink(excelConfig.excel_Dir, function (err) {
if (err) throw err;
console.log("删除文件" + excelConfig.excel_Dir + "成功")
})

第五步:抛出接口调用后的效果

3.2,pdf文档解析

第一步:安装pdf2json


cnpm install pdf2json --save

第二步:引入pdf2json


var PDFParser = require("pdf2json");
var fs = require('fs');

第三步:解析文档


function parsePdf(excelConfig, res) {
var pdfParser = new PDFParser(this, 1);
pdfParser.loadPDF(excelConfig.excel_Dir);
pdfParser.on("pdfParser_dataError", errData => {
res.status(200).json({
httpCode: 200,
message: '导入解析失败',
data: errData,
returnValue: 0
});
});
pdfParser.on("pdfParser_dataReady", pdfData => {
let data = pdfParser.getRawTextContent()
fs.writeFile('./uploads/test.txt', data, function (err) {
if (err) {
throw err;
}
});
res.status(200).json({
httpCode: 200,
message: '导入成功',
data: {
result: data
},
returnValue: 1
});
});
}

第四步:解析后删除文档


fs.unlink(excelConfig.excel_Dir, function (err) {
if (err) throw err;