二.Linux下安装wkhtmltopdf 解决N个安装中的问题

 

项目中使用到了wkhtmltopdf ,一开始在windows上跑 好好的 没有任何问题,结果一部署到linux 上 出现了一堆问题,特此记录 碰到的一些坑 .其中用到的一些包,都需要自行下载

  1. 官网 https://wkhtmltopdf.org/

下载wkhtmltopdf  当前使用版本为0.12.5

https://github-production-release-asset-2e65be.s3.amazonaws.com/271714/3f90e5d2-6e42-11e8-9f4a-7d8d6460a726?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190920%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190920T084521Z&X-Amz-Expires=300&X-Amz-Signature=f6003063f0a92d4bce71f9d2d81df5c6fda573569032ec60bfc24d085ee50f91&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dwkhtmltox-0.12.5-1.centos7.x86_64.rpm&response-content-type=application%2Foctet-stream

 

  1. 安装到linux opt目录下  其中许多操作都需要root权限

 

 

  1. 解压:rpm -ivh --prefix=/opt  wkhtmltox-0.12.5-1.centos7.x86_64.rpm  需要root 权限

error: Failed dependencies:

     xorg-x11-fonts-75dpi is needed by wkhtmltox-1:0.12.2-1.x86_64

# 提示需要安装75dpi  

输入 yum search 75dpi

 

 

输入 yum install xorg-x11-fonts-75dpi.noarch

 

 

 

  1. 查看 /opt/usr/local/bin 目录下是否有 wkhtmltopdf文件 ,有即安装成功 注意,后面又安装过两次,是被安装在了/opt/bin 目录下 需要自己去看具体在哪个目录

测试 是否安装成功

测试 输入  注意需要在wkhtmltopdf所在文件夹下输入 如果输入 1 不行 再输入2 

wkhtmltopdf https://www.baidu.com baidu.pdf

 

./wkhtmltopdf –page-size A4 www.baidu.com pdf.pdf

输入后

发现报错,缺少 libpng15.so.15

wkhtmltopdf: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory

将 libpng15-1.5.30-alt1.tar 放到/usr/lib下

解压 tar xvf libpng15-1.5.30-alt1.tar

解压到当前路径中,

cd libpng15-1.5.30-alt1

进入文件

依次输入

./configure

make

make install

安装完毕后 会显示这个

 

 

 

安装后会自动把编译时需要的libpng15.pc文件保存在/usr/local/lib/pkgconfig目录下了

 

 

安装后会自动把编译时需要的libpng15.pc文件保存在/usr/local/lib/pkgconfig目录下了

 

 

直接运行:

pkg-config libpng15  --libs –cflags 会报错:显然是没有找到.pc文件

需要配置PKG_CONFIG_PATH环境变量:

exportPKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

 

 

没配之前 报 libpng15.pc  -cflags.pc 找不到

再次输入 报 -cflags.pc 找不到

 

输入指令

pkgconfig 查看是否有安装

 

如果出现 -bash: pkgconfig: command not found

说明没安装 pkgconfig

 

 

安装 -cflags.pc 需要先安装 fuse

安装依赖

fuse-3.0.2.tar.gz 到/usr/lib

解压 tar xvf fuse-3.0.2.tar.gz

进入 fuse-3.0.2

按部就班地首先“./configure”,然后“make”,接着“make install”,最后“modprobe fuse”加载内核模块fuse.ko

 

查看fuse是否挂载成功: lsmod|grep fuse

 

若没成功则可通过:“modprobe fuse”命令挂载fuse。

 

挂载成功就fuse就 OK了

 

安装pkg-config

 

将pkg-config-0.29.2.tar.gz 放到 /usr/lib

解压 tar xvf pkg-config-0.28.tar.gz

 

输入指令

cd pkg-config-0.29.2

 

./configure --with-internal-glib

 

 

 

make & install make

 

 

至此, pkg-config 安装完成。

 

导入 指令

export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig/

指令

ldconfig

 

可能再次输入 还会出现 

如果出现 -bash: pkgconfig: command not found

之类的 提示

解决方案:
# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

 

至此,libpng15 就能找到了 再次运行wkhtmltopdf

./wkhtmltopdf –page-size A4 www.baidu.com pdf.pdf

报 OPENSSL_1.0.2‘ not found 

原因分析:

报这样的错误,就是因为openssl的版本问题导致的。因此需要更新openssl。查看当前的版本号:

[root@slave-4~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
[root@slave-4 ~]#
[root@slave-4 ~]# rpm -qa openssl
openssl-1.0.1e-60.el7.x86_64
[root@slave-4 ~]#

可以参考这篇文章 http://www.mamicode.com/info-detail-2342742.html

我这边用的是第二种方法 ,当时找不到这个1.0.2后来从同事腾讯的服务器上找到了这个 挪了过来

具体的操作是 把1.0.2 放到 /usr/lib64 里 软连接 让libcrypt.so.10 指向 1.0.2k

 

再次运行wkhtmltopdf 终于成功

安装wkhtmltopdf 1. 下载安装包 首先,需要到wkhtmltopdf的官网下载相应的安装包。根据自己的系统选择对应的版本,这里以CentOS 7为例。 下载地址:https://wkhtmltopdf.org/downloads.html 2. 安装依赖 安装wkhtmltopdf之前需要安装一些依赖,执行以下命令: ``` yum install -y openssl-devel.x86_64 libXrender-devel.x86_64 libXext.x86_64 fontconfig.x86_64 libX11-devel.x86_64 libjpeg-turbo-devel.x86_64 ``` 3. 安装wkhtmltopdf 将下载好的安装包解压,并将wkhtmltopdf可执行文件复制到/usr/local/bin/目录下,执行以下命令: ``` tar -zxvf wkhtmltox-0.12.6-1.centos7.x86_64.rpm.tar.gz cd wkhtmltox cp bin/wkhtmltopdf /usr/local/bin/ ``` 文支持问题 如果直接使用wkhtmltopdf转换文内容,可能会出现乱码或不支持文的情况。需要安装文字体才能解决这个问题。 1. 查找文字体 首先需要找到系统安装文字体。执行以下命令: ``` fc-list :lang=zh ``` 输出结果包含的文件路径即为系统安装文字体。 2. 安装文字体 如果系统不存在文字体,可以下载文字体并安装。 这里以“文泉驿微米黑”字体为例。执行以下命令: ``` yum install -y wget fontconfig wget https://github.com/ButterAndButterfly/WenQuanYiMicroHei/raw/master/wqy-microhei.ttc mkdir -p /usr/share/fonts/wqy-microhei cp wqy-microhei.ttc /usr/share/fonts/wqy-microhei/ fc-cache -f -v ``` 3. 设置环境变量 在wkhtmltopdf执行转换时,需要设置一个环境变量来指定字体文件路径。 执行以下命令: ``` export WKHTMLTOPDF_FONT_PATH=/usr/share/fonts/wqy-microhei/ ``` 注意,此命令只在当前会话生效。如果需要永久生效,可以将其添加到/etc/profile文件。 完成以上步骤后,就可以愉快地使用wkhtmltopdf进行转换并支持文了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值