因为涉及到账单,并且要生成PDF并发送邮件,所以试用了好多转换PDF的都不成功,基本上都是格式错乱,唯一就是 wkhtmltopdf 满足 我的需求
安装环境
CENTOS 7.3
下载及安装
wget /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 .pdf")
shell 中执行
wkhtmltopdf .pdf
中文字体
/usr/shared/fonts/chinese
chmod -R 755 /usr/share/fonts/chinese
上传字体宋体,你自己电脑中的字体,或者网上下载的也可以,字体如下
simsun.ttc # 宋体 /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,即字体列表,在这里需要把我们添加的中文字体位置加进去:加入到类似的位置
然后输入:wq保存退出,最后别忘了刷新内存中的字体缓存,这样就不用reboot重启了:
字体缓存
fc-cache
查看字体
fc-list |grep SimSun
可以看到已经成功安装上了中文字体,
中文编码解决
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