Node.js Pdf生成与动态表

时间:2015-05-30 14:29:31

标签: angularjs node.js

我需要帮助才能在node.js中实现多页pdf生成。我试过用html-pdf免费软件。我在我的angluar(html)页面中有六张桌子。如果选中复选框,我想在运行时隐藏任何表。我尝试过使用ng-show / hide。但是没有用。所以,我试图在node.js中设计一个html模板,如果我显示整个页面,它工作正常。我想根据从angular到node发送的数组的值只显示特定的表。在这里myProject.html包含我的所有表格设计。我知道如何隐藏角度表。那是使用ng-hide / show。但是我不知道如何在node.js服务器端实现相同的功能。在这个html-pdf模块中是否有可能使用angularjs。有人告诉我。 任何帮助都会很感激。

我的示例代码段:

var html = fs.readFileSync('./public/pages/myProject.html', 'utf8');


var content1 = fs.readFileSync('./public/pages/footer.html', 'utf8');
var options = {
filename: './public/pdf/reports.pdf', format: 'Letter', "type": "pdf", 
"font-family": "Calibri",  


//    //Footer options
"footer": {
    "height": "28mm",
    "contents": content1
},
//    //Page option
"border": {
    "top": "0.2in",
    "bottom": "0.1in",
    "right": "0.5in",
    "left": "0.5in"
}
}; 

pdf.create(html, options).toFile(function (err, res) {
if (err) return console.log(err);
console.log(res); // { filename: '/tmp/html-pdf-8ymPV.pdf' }
});

1 个答案:

答案 0 :(得分:1)

它是Phantomjs。相信我,我的男人。我们一直用它来生成所有账单和发票(当然还有动态数据)

每条评论请求

EDIT

phantom.create(function(ph) {
    ph.createPage(function(page) {
        page.set('paperSize',{
            format:'Letter',
            margin: {
                'top':'0in',
                'bottom':'0in',
                'left':'0in',
                'right':'0in'
            }
        });
        page.set('content',templates.bill(data));
        page.set('settings.loadImages',true);
        page.render('/tmp/file.pdf',function() {
            ph.exit();
            callback(null,'/tmp/file.pdf');
        });
    });

});

其中templates.bill是一个jade编译函数(返回字符串);