我正在尝试将html页面转换为PDF。转换适用于PhantomJS,但是,phantomjs似乎不支持CSS3 columns。
我正在运行的命令(html-> pdf)
phantomjs.exe examples/rasterize.js http://davidwalsh.name/demo/css-columns.php sample.pdf
生成的PDF不支持CSS列样式,而是显示项目的垂直列表。
但是,运行以下命令转换 html->图片确实符合CSS3列样式:
phantomjs.exe examples/rasterize.js http://davidwalsh.name/demo/css-columns.php sample.png
有人可以确认这是预期的行为吗?
顺便说一句,我已尝试使用wkhtmltopdf但does/will not be supporting CSS Columns。
非常感谢
答案 0 :(得分:3)
我相信PhantomJs依赖的webkit版本可能没有实现CSS3列,尽管主要的webkit浏览器(Safari和Chrome)都可以。这个链接
https://github.com/ariya/phantomjs/wiki/Supported-Web-Standards
和此链接
http://trac.webkit.org/wiki/QtWebKitFeatures22
将像这个主题AFAIK一样轻松地消失。
答案 1 :(得分:2)
我和@Stolli得出了同样的结论。但作为一种解决方法,我确实做了以下事情:
使用CSS3列并使用随wkhtmltopdf库附带的wkhtmltoimage将html转换为图像。这将保持CSS3列结构。
然后将生成的图像嵌入到html字符串中,如:
<html><img src='path/to/my/file'/></html>
并使用wkhtmltopdf转换为PDF。
显然,这里有许多依赖项,因此对于生产环境来说并不理想。
答案 2 :(得分:0)
不,我不相信它直到今天,但另一种方法是使用https://github.com/peterdemartini/html5-to-pdf使用Nightmare浏览器而不是幻像并支持CSS列,我只是试了一下。