SailsJs - 将html视图导出为PDF

时间:2017-01-13 19:27:19

标签: javascript node.js pdf express sails.js

我需要将HTML视图导出为PDF。 我已经查看了我的视图,并且我想创建另一个链接以从此视图生成PDF版本。 我尝试使用http.get下载HTML文件,但它无效。 这是代码:

var http = require('http');
var fs = require('fs');
var file = fs.createWriteStream("files/" + filename);

var fullUrl = req.protocol + '://' + req.get('host') + 'PATH/TO/MY/VIEW?id=' + id;

var request = http.get(fullUrl, function(response){
    response.pipe(file);    
});

书面文件只输出:

Found. Redirecting to /<default_pattern>

1 个答案:

答案 0 :(得分:2)

您可以使用html to pdf转换器,而不是下载,而不是wkhtmltopdf。将视图转换为pdf很简单:

res.render('ticket/pdf', {
    'title': 'Ticket #1',
}, function(err, html) {
    if (err) {
        return res.negotiate(err);
    }
    res.setHeader('Content-disposition', 'attachment; filename=myFile.pdf';
    return require('wkhtmltopdf')(html).pipe(res);
});

必须在您的系统上安装转换器,请参阅http://wkhtmltopdf.org/

如果您仍想下载视图,请执行以下操作:

wkhtmltopdf('http://google.com/', { pageSize: 'letter' })
  .pipe(fs.createWriteStream('out.pdf'));