我需要帮助才能在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' }
});
答案 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编译函数(返回字符串);