Phantomjs是否支持用于HTML到PDF转换的CSS3列?

时间:2013-10-09 15:14:09

标签: css3 phantomjs

我正在尝试将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

有人可以确认这是预期的行为吗?

顺便说一句,我已尝试使用wkhtmltopdfdoes/will not be supporting CSS Columns

非常感谢

3 个答案:

答案 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列,我只是试了一下。