简体   繁体   English

SailsJs-将HTML视图导出为PDF

[英]SailsJs - Export html view to PDF

I need to export a HTML view to a PDF. 我需要将HTML视图导出为PDF。 I already have my view working and I want to create another link to generate a PDF version from this view. 我已经可以使用我的视图,并且我想创建另一个链接以从该视图生成PDF版本。 I'm trying to use http.get to download the HTML file but it's not working. 我正在尝试使用http.get下载HTML文件,但无法正常工作。 Here's the code: 这是代码:

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

The written file just outputs: 书面文件仅输出:

Found. Redirecting to /<default_pattern>

Instead of downloading you could use a html to pdf converter like wkhtmltopdf . 除了下载外,您可以使用wkhtmltopdf之类的html到pdf转换器。 Converting a view to pdf is simple as: 将视图转换为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);
});

The converter has to be installed on your system, refer to http://wkhtmltopdf.org/ 该转换器必须安装在您的系统上,请参阅http://wkhtmltopdf.org/

If you still like to download a view, do the following: 如果您仍然想下载视图,请执行以下操作:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM