最近在项目中遇到需要把html页面转换为pdf的需求,并且转换成的pdf文件要保留原有html的样式和图片。也就是说,html页面的图片、表格、样式等都需要完整的保存下来。
最初找到三种方法来实现这个需求,这三种方法都只是粗浅的看了使用方法,从而找出适合这个需求的方案:
html-pdf 模块
wkhtmltopdf 工具
phantom 模块
最终使用了phantom模块,也达到了预期效果。现在简单的记录三种方式的使用方法,以及三者之间主要的不同之处。
1.html-pdf
github:https://github.com/marcbachmann/node-html-pdf
npm:https:///index.html").then(function(status) { page.property('viewportSize',{width: 10000, height: 500}); page.render('/oracle10000.pdf').then(function(){ console.log('Page rendered'); ph.exit(); }); }); });});
代码中,phantom能够通过URL转换为相应的PDF,而且能够通过 page.property('viewportSize',{width:width,height:height}) 来设置生成的PDF的宽度和高度。
此例phantom中并没有分页,它是以整个浏览器截图的形式,获取全文,转化为PDF格式。
选择phantom的主要原因就是便于设置PDF的宽度,更能兼容HTML的排版。
结果如下: