HTML转PDF和PNG

最近也是有个需求需要将PDF转为PDF和PNG,发现了一个非常不错的工具CutyCapt,官网:http://cutycapt.sourceforge.net/

转出来的东西非常不错,比网上找的一些用其他框架转的好太多了。来张效果图(来自Windows系统截图):

html转pdf

不过对CSS3的圆角效果还有阴影这些效果好像支持不是非常好。

Linux上面比较麻烦,参考文章:http://ziyu-1.iteye.com/blog/1749594
参考上面的文章有一些问题已经在文章里面提及到,一些细节补充一下。

首先安装QT平台,这个可能会有一些依赖包的问题,其中有一个file /usr/bin/assistant_adp from install of qt44-x11-4.4.3-10_4.el5.x86_64...这个是因为和原来的冲突了,所以把以前的卸载了重新安装就可以了。

然后安装cutycapt,不过上面文章中的SVN地址失效了,新地址:https://svn.code.sf.net/p/cutycapt/code/CutyCapt/

然后安装xvfb,如果没有安装这个会提示:CutyCapt: cannot connect to X server,安装命令:yum install Xvfb 注意第一个字母大写

如果提示:./xvfb-run.sh: line 168: 24922 Segmentation fault DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1这个问题,是因为没有安装ImageMagick

中文字体安装:
/usr/share/fonts/下加一个字体的文件夹chinese
然后从Windows上面的C:\Windows\Fonts下面拷贝需要的字体到chinese里面
执行chmod 644 /usr/share/fonts/chinese/*.ttf
然后在chinese下面执行下面命令

mkfontscale
mkfontdir
fc-cache -fv

Done

有的转出来发现图片或者PDF的效果不好,可能是没有加--server-args="-screen 0, 1280x1200x24"这个参数。

Linux上面转PDF发现没有背景,而且Linux上面好像javascript也是不支持的。Window上面暂时没发现问题。

还有另外一款软件叫做wkhtmltopdf的转PDF,这个也非常不错,javascript支持很好,背景也没问题。转图片的命令是wkhtmltoimage,转图片要注意最好是JPG格式的,如果是PNG会非常大。

这里我推荐使用后面的wkhtmltopdf。

当然这里的html样式比较复杂,如果你只是用于导出合同类型比较简单的html,可以直接使用iText,效果也非常不错。

这里有一篇wkhtmltopdf的参数详解:http://blog.163.com/songchao01230@126/blog/static/1161848722014222231114/