我有需要在哪里需要从节点中的html创建PDF。除此之外,我必须能够添加自定义页眉和页脚。然后,网页的内容应该基于自定义要求在多个页面中。那就是我们必须能够决定哪个内容应该是哪个页面。 搜索后我发现了一些像幻影这样的解决方案,但没有适当的文档可以帮助我。 我需要一些方法来做到这一点。 找到了解决方案 here,但解释不够好。
答案 0 :(得分:0)
我一直在使用https://github.com/baudehlo/node-phantom-simple模块和webshot
步骤I: -
var driver = require('node-phantom-simple');
var webshot = require('webshot');
driver.create({path: require('phantomjs').path, 'parameters': {'disk-cache': 'yes'}}, function (err, browser) {
return browser.createPage(function (err, page) {
return page.open(url, function (err, status) {
console.log("opened site? ", status,page.content);
return page.evaluate(File.cleanHtml, function (err, html) {
var options = {
streamType: 'pdf',
screenSize: {
width: 1200,
height: 300
},
shotSize: {
width: 1200,
height: 300
},
siteType:'html',// include this to generate PDF from html
phantomConfig: {'ssl-protocol':'any','ignore-ssl-errors': 'true'}
}
var pdfname = 'test_' + Date.now() + '.pdf';
webshot(html,pdfname,options, function(err) {
console.log("err in webshot",err);
})
});
// });
});
});
});
这里File.cleanHtml是我创建的一个函数,用于从HTML中删除额外的内容。你可以直接从这个函数返回相同的HTML。可能是这样的:)
cleanHtml: function () {
var data = $("html");
return "<html>" + data.html() + "</html>";
}