一旦生成(节点,快速),自动下载PDF

我正在使用下面的节点模块html-pdf将html转换为pdf。 我已经成功地将HTML转换为PDF格式,但是一旦创build完成,我无法下载文件。

生成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,而用户不必经过另一个步骤。

我只是对你的代码做了一些修改。在这段代码中我创build了一个路由。 每当你用这条path发出一个请求时,它就会把HTML文件转换成PDF文件,并从你执行的地方创build一个pdf文件到你的目录中。 同时它也显示在浏览器中的HTML文件与下载选项也。 希望这对你有帮助。 这是我的代码。

 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"); }); 

输出:查看浏览器中的输出,如: localhost:3000/file