在这里推荐一款比较好用的HTML转换为PDF的工具Wkhtmltopdf,安装使用结束如下。
Centos7下安装
系统信息:
系统: Centos7.6 CPU架构: X86 系统架构: 64位
在版本0.12.4
官方是有通用的x86下面的编译好的安装包,解压即可用的,但是新版没有构建,但是没有关系,有Centos7下的RPM包。
下载安装包:
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
包依赖安装:
$ yum -y install fontconfig libX11 libXext libXrender xorg-x11-fonts-75dpi xorg-x11-fonts-Type1
安装:
$ rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm
准备中... ################################# [100%]
安装... wkhtmltox-1:0.12.5-1.centos7 ################################# [100%]
默认就可以用了:
$ /usr/local/bin/wkhtmltopdf -V
wkhtmltopdf 0.12.5 (with patched qt)
如果生成的字符都是方块,那么你需要安装standard PostScript fonts
:
$ yum -y install urw-fonts openssl-devel
Tips: 如果中文不显示,则需要将windows下的字体,例如simsun.ttc、msyh.ttf或者msyhbd.ttf复制到Linux系统
/usr/share/fonts
目录下。
Centos7下编译安装
1、安装qt5
yum -y install qt5-qtbase-devel qt5-qtsvg-devel qt5-qtxmlpatterns-devel qt5-qtwebkit-devel
ln -s /usr/lib64/qt5/bin/qmake /usr/bin/qmake
2、下载安装包
https://codeload.github.com/wkhtmltopdf/wkhtmltopdf/tar.gz/0.12.6
tar zxf wkhtmltopdf-0.12.6.tar.gz
cd wkhtmltopdf-0.12.6
3、编译
qmake
make
make install
默认在源码目录下生成bin目录,会生成动态链接库和wkhtmltopdf
和wkhtmltoimage
两个命令。
Arm架构下UOS20下编译安装
系统信息:
系统: Uos20 CPU架构: ARM 系统架构: 64位
下载源码:
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/archive/0.12.5.tar.gz
安装依赖:
$ apt-get install qt5-default qtcreator libqtwebkit-dev libqt5webkit5-dev qt5-qmake libqt5svg5* libqt5xml5 libqt5xmlpatterns5 libqt5xmlpatterns5-dev -y
$ ln -s /usr/lib/aarch64-linux-gnu/qt5/bin/qmake /usr/bin/qmake
编译:
tar zxf wkhtmltopdf-0.12.5.tar.gz
cd wkhtmltopdf-0.12.5
mkdir /data/app/wkhtmltopdf
qmake PREFIX=/data/app/wkhtmltopdf
make
make install
使用测试
$ /data/app/wkhtmltopdf/bin/wkhtmltopdf https://www.baidu.com ./baidu.pdf
Loading page (1/2)
QNetworkReplyHttpImplPrivate::_q_startOperation was called more than once QUrl("https://www.baidu.com/")
Printing pages (2/2)
Done
$ /data/app/wkhtmltopdf/bin/wkhtmltoimage https://www.baidu.com ./baidu.png
Loading page (1/2)
QNetworkReplyHttpImplPrivate::_q_startOperation was called more than once QUrl("https://www.baidu.com/")
Rendering (2/2)
Done
结果:
本文由 空心菜 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Aug 19, 2020 at 02:22 pm