生成后自动下载PDF(Node,Express)

时间:2017-07-04 11:13:33

标签: javascript html node.js express

我正在使用以下节点模块html-pdf  将html转换为pdf。我已成功将html转换为pdf,但是在创建文件后我无法下载该文件。

生成PDF的代码:

var fs = require('fs');
var pdf = require('html-pdf');
var html = fs.readFileSync('./test/businesscard.html', 'utf8');
var options = { format: 'Letter' };

pdf.create(html, options).toFile('./businesscard.pdf', function(err, res) {
if (err) return console.log(err);
console.log(res); // { filename: '/app/businesscard.pdf' } 
});

如何在浏览器中打开PDF以供用户在浏览器中查看或自动下载pdf,而无需用户执行其他步骤。

1 个答案:

答案 0 :(得分:1)

我刚刚对您的代码进行了一些更改。在此代码中,我创建了一个路由。每当您使用此路由发出请求时,它会将PDF文件转换为var express=require('express'); var fs = require('fs'); var pdf = require('html-pdf'); var html = fs.readFileSync('C:/Users/nodejs/tasks/file.html', 'utf8'); var options = { format: 'Letter' }; var app=express(); app.get('/file',function(request,response) { pdf.create(html, options).toFile('./businesscaw.pdf', function(err, res) { if (err) return console.log(err); console.log(res); var file= 'C:/Users/nodejs/tasks/businesscaw.pdf'; fs.readFile(file,function(err,data){ response.contentType("application/pdf"); response.send(data); }); }); }); app.listen(3000,function(){ console.log("Server listening on port http://loalhost:3000"); }); 并将pdf文件创建到您正在执行的目录中。同时它也在浏览器中显示html文件并带有下载选项。希望这对你有所帮助。这是我的代码。

localhost:3000/file

输出: 请参阅浏览器中的输出,如:AsyncHttpClient