最近,工作上遇到一个需求,需要将前端绘制出来的表格,变成pdf文件;试了很多种方法和php扩展,都不是很满意;最后终于找到一个工具【wkhtmltopdf】,它不是php扩展,而是一个工具,所以需要在服务器中安装这个工具,以下就是安装和使用的具体过程:
第一步:查看linux操作系统的版本及位数:
cat /etc/redhat-release //查看系统的版本
getconf LONG_BIT //查看系统是多少位的
第二步:去wkhtmlopdf下载地址去下载: http://wkhtmltopdf.org/downloads.html;根据你自己的情况去选择相应的版本
或者使用linux命令下载【一般是在/root目录下载,下载完成之后会看见一个压缩包】
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
第三步:解压压缩包【由于这个下载的压缩包是.xz结尾的,下面的命令可能解压不了。可以查查怎么解压.xz压缩包】
tar xvfJ wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
解压完成之后,会在和压缩包的同级目录出现一个“wkhtmltox”文件夹
第四步:移动“wkhtmltox”文件夹中的/bin/wkhtmltopdf 到/usr/bin/wkhtmltopdf;之后设置权限
sudo mv ./wkhtmltopdf /usr/bin/wkhtmltopdf //移动
sudo chmod +x /usr/bin/wkhtmltopdf //设置权限
第五步:去/usr/bin目录下利用wkhtmltopdf工具去生成pdf【下图是wkhtmltopdf在/usr/bin目录中】
./wkhtmltopdf http://www.baidu.com /home/wwwroot/1.pdf
看到上图:表示将html转成pdf格式成功
【注意】
./wkhtmltopdf:代表的是wkhtmltopdf工具的命令
http://www.baidu.com : 代表的是你想要转变的html文件路径
/home/wwwroot/1.pdf :代表的是你生成pdf文件的路径
【在生成pdf过程中可能出现的问题】
1.打开你生成的pdf文件,发现里面的汉字都没有了,或者是乱码。【原因是:系统中没有字体库】
解决方法:上传一个字体文件【例如:msyh.ttf】到linux系统中 /usr/bin/fonts目录下,再重新生成pdf文件即可。
2.在将html文件生成pdf文件时,即执行“ ./wkhtmltopdf http://www.baidu.com /home/wwwroot/1.pdf” 命令时;可能出现以下错误:
wkhtmltoimage: error while loading shared libraries: libXrender.so.1: cannot open shared object file: No su
使用命令安装即可安装成功
yum install libXrender*
3.如果linux系统中缺少字体库,安装字体库即可
yum install libfontconfig
以上就是在linux系统中,利用wkhtmltopdf工具将html页面生成pdf文件