版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/shenxiaomo1688/article/details/116154657
安装背景:项目中需要将html页面转成pdf,以便可以将页面导出为pdf进行保存或者打印。
网上比较了多种,普遍认为wkhtml使用检验较好,于是决定进行安装。
1、安装依赖
yum install fontconfig libX11 libXext libXrender libjpeg libpng xorg-x11-fonts-75dpi xorg-x11-fonts-Type1
yum install openssl
2、下载安装包
wkhtmltox-0.12.5-1.centos7.x86_64.rpm
3、安装
rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm
安装好以后,可以使用以下命令查寻安装的地址
whereis wkhtmltopdf 一般在 /usr/local/bin/wkhtmltopdf
安装完成!!!!
安装完成以后,执行命令
cd /usr/local/bin/ ./wkhtmltopdf https://www.baidu.com/ ./baidu.pdf
查看生成的pdf
有没有感觉有点怪怪的,怪就对了,细心观察会发现,导出的pdf错漏百出,有些文字凭空消失了。
为什么会出现这样的的情况呢,起初我以为是版本问题,不过很快我就推翻了这个推测,怀疑是不是我的服务器缺失某些字体所致的,为了印证这一猜测,使用如下命令,查看服务器已安装的字体
字体很多,这里我就不贴出来了,发现没有宋体,于是我新建一个专门存放中文字体的目录,linux存放字体的目录在/usr/share/fonts,于是我在该目录下新建一个zh-CN的文件夹,然后把宋体,微软雅黑等常用中文字体放到zh-CN目录下,然后进行查看,因为字体太多,我只想查寻中文字体,便使用下面命令快速查找:
如上图,红色箭头的宋体已经放到服务器上了。
这里插句题外话,可以从本地windows电脑上进行拷贝,windows字体在C:\Windows\Fonts这个目录里,宋体就是这个文件了
拷贝到Linux文件夹需将文件进行重命名,Linux上不识别ttc,需将后缀改为ttf。
再执行下面命令更新字体库,确保万无一失
fc - cache - fv再次执行上面生成pdf的命令,发现导出来的pdf终于完整了,没有文字缺少的问题了。