因为涉及到账单,并且要生成PDF并发送邮件,所以试用了好多转换PDF的都不成功,基本上都是格式错乱,唯一就是 wkhtmltopdf 满足 我的需求

https://wkhtmltopdf.org/downloads.html

这里下载是 linux 64

安装环境

CENTOS 7.3

下载及安装

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

风.foxiswho 解压缩

tar -Jxv -f **.tar.xz
或者
xz -d **.tar.xz
tar -xv -f **.tar

移动文件目录到相关位置,例如 移动文件夹到/www/lanmps/目录下

mv wkhtmltox /www/lanmps/wkhtmltox

建立软连接,

ln -s /www/lanmps/wkhtmltox/wkhtmltoimage /usr/local/bin/wkhtmltoimage          #转换成图片
ln -s /www/lanmps/wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf          #转换成 PDF

PHP 中使用 shell_exec 执行

shell_exec("wkhtmltopdf http://www.lanmps.com lanmps.com.pdf")

中文字体

服务器上必须安装字体 http://blog.csdn.net/wlwlwlwl015/article/details/51482065 新建字体目录

/usr/shared/fonts/chinese
chmod -R 755 /usr/share/fonts/chinese

上传字体宋体,你自己电脑中的字体,或者网上下载的也可以,字体如下

simsun.ttc                      # 宋体 http://down7.pc6.com/qd3/simsun.zip 记得解压缩
simsun.ttf                      # 宋体

接下来需要安装ttmkfdir来搜索目录中所有的字体信息,并汇总生成fonts.scale文件,输入命令:

yum -y install ttmkfdir

然后执行ttmkfdir命令即可:

ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir

最后一步就是修改字体配置文件了,首先通过编辑器打开配置文件:

vim /etc/fonts/fonts.conf

可以看到一个Font list,即字体列表,在这里需要把我们添加的中文字体位置加进去:加入到类似的位置

<dir>/usr/share/fonts/chinese</dir>

然后输入:wq保存退出,最后别忘了刷新内存中的字体缓存,这样就不用reboot重启了: 字体缓存

fc-cache

查看字体

fc-list |grep SimSun

可以看到已经成功安装上了中文字体,

中文编码解决

http://aiilive.blog.51cto.com/1925756/1340243/

Q

error while loading shared libraries: libXrender.so.1: cannot open shared object file: No such file or directory

./bin/wkhtmltopdf: error while loading shared libraries: libXrender.so.1: cannot open shared object file: No such file or directory

解决方法:

yum install -y libXrender

http://blog.csdn.net/wlwlwlwl015/article/details/51482065

首发 http://www.foxwho.com/article/144

同步 foxwho(神秘狐)的领地 http://www.foxwho.com

 Tags : wkhtmltopdf pdf html

Donate:| 文章有帮助,可以 请我喝杯咖啡

Powered by foxwho.com