您的位置:首页 > Web前端 > Node.js

node-express - 页面静态化实现

2014-12-24 10:41 225 查看
摘要: node-express - 页面静态化实现,可以将动态生成的html存储为静态文件,如 .html或 .doc 文件,即该方法实现了将根据模板生成word文档的功能。

#例:

res.render('test/test.ejs',{task:task},function(err,html){
console.log(html);
// 此处将html转存为文件进行存储(并进行后续的静态文件的索引工作)或直接生成二进制文件发送回浏览器
});

##[2015-1-5 10:31:51] 将页面另存为doc、xsl或者其他文件方式

这种方式只适合要求不高的导出,其本质还是html文件,只不过是另存为了excel或word格式。

res.render('test/test.ejs',{task:task},function(err,html){
if(err){
res.send(500,{error:err});
}else{
res.set('Content-Type', 'text/html');
res.set('Content-Disposition', 'attachment; filename="test.xls"');
res.send(html);
}
});

##[2015-8-10 09:53:35] 将页面导出为pdf

使用 html-pdf 模块,直接生成pdf文件导出。

var pdf = require('html-pdf');
var options = {
format: 'Letter'
};

res.render('test/test.ejs',{task:task},function(err,html){
if(err){
res.send(500,{error:err});
}else{
pdf.create(html).toBuffer(function(err, stream) {
res.writeHead(200, {
'Content-Type': 'application/pdf',
'Content-Disposition': 'attachment;filename=' + encodeURIComponent("任务单" + task.TASK_NO + '.pdf')
});
res.end(stream);
});
}

使用html-pdf也可直接生成图片格式,只需将options的"type"设置为png或者jpeg即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: