官网:https://wkhtmltopdf.org/
wkhtmltopdf and wkhtmltoimage are open source (LGPLv3) command line tools to render HTML into PDF and various image formats using the Qt WebKit rendering engine. These run entirely “headless” and do not require a display or display service.
wkhtmltopdf 和 wkhtmltoimage 是开源 (LGPLv3) 命令行工具,可使用 Qt WebKit 渲染引擎将 HTML 渲染为 PDF 和各种图像格式。 这些完全“headless”运行,不需要界面或界面服务。
如果您喜欢,它还是一个 C 库。
wkhtmltopdf是 “命令行工具” ,支持多个平台,可在win,linux,os x 等系统下运行。
问题描述:
执行 wkhtmltopdf -V 报错 error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory
解决方法:
apt-get install libjpeg62-dev
解决’GLIBC_2.14’ not found问题时遇到的坑
参考URL: https://blog.csdn.net/clirus/article/details/62425498
最近用到c++11需要升级glibc库。
网上有很多解决’GLIBC_2.14’ not found问题的帖子。
无非就是如下的一些操作命令:
下面先说一下遇到的坑:
1、在make过程中出现如下错误:
/usr/bin/install: include/limits.h' and
/opt/glibc-2.14/include/limits.h’ are the same file
在经过google后,不太理解相关帖子的含义,后来自行修炼后,明白了。
原因就是楼主解压的glic-2.14.tar.gz源码和编译时定义的目录…/configure --prefix=/home/software/glibc-2.14放到了一起。
所以解决方法就是:
tar zxvf glibc-2.14.tar.gz -C /home/software/
…/configure --prefix=/opt/glibc-2.14
只要将编译定义目录和源码目录区分开就ok了。
2、在make install过程中出现如下错误:
Can’t open configuration file /opt/glibc-2.14/etc/ld.so.conf: No such file or directory
就是缺少了必要的编译文件ld.so.conf。通过find命令找到对应的文件位置。
[root@localhost build]# find / -name “ld.so.conf”
/etc/ld.so.conf
然后我们执行命令把此文件拷贝到对应的文件目录下去,然后继续编译。
[root@localhost build]# cp /etc/ld.so.conf /opt/glibc-2.14/etc/
[root@localhost build]# make install
Congratulations! 编译成功!
最后就是设置环境变量,因为glibc库使用广泛,为了避免污染当前系统环境,在使用时候定义一下环境变量。
执行命令
[root@localhost ~]# export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
将库的位置临时定位在/opt/glibc-2.14/lib位置。
此时再执行相关程序即可顺利运行。
①yum install -y fontconfig mkfontscale 或者
apt-get -y install fontconfig xfonts-utils
② 下载字体文件(TTF文件)放入/usr/share/fonts
③ 执行三个命令
mkfontscale
mkfontdir
fc-cache
pip3 install pdfkit
注:pdfkit是基于wkhtmltopdf的python封装,所以需要安装wkhtmltopdf。wkhtmltopdf是轻量级软件,非常很容易安装。
下载地址: https://wkhtmltopdf.org/downloads.html
# 导入库
import pdfkit
'''将网页生成pdf文件'''
def url_to_pdf(url, to_file):
# 将wkhtmltopdf.exe程序绝对路径传入config对象
path_wkthmltopdf = r'D:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
# 生成pdf文件,to_file为文件路径
pdfkit.from_url(url, to_file, configuration=config)
print('完成')
# 这里传入我知乎专栏文章url,转换为pdf
url_to_pdf(r'https://zhuanlan.zhihu.com/p/69869004', 'out_1.pdf')
# 导入库
import pdfkit
'''将html文件生成pdf文件'''
def html_to_pdf(html, to_file):
# 将wkhtmltopdf.exe程序绝对路径传入config对象
path_wkthmltopdf = r'D:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
# 生成pdf文件,to_file为文件路径
pdfkit.from_file(html, to_file, configuration=config)
print('完成')
html_to_pdf('sample.html','out_2.pdf')
import pdfkit
def str_to_pdf(string, to_file):
# 将wkhtmltopdf.exe程序绝对路径传入config对象
path_wkthmltopdf = r'D:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
# 生成pdf文件,to_file为文件路径
pdfkit.from_string(string, to_file, configuration=config)
print('完成')
if __name__ == '__main__':
str_to_pdf('This is test!', 'out_str_to_pdf.pdf')
Python生成PDF(pdfkit库)
参考URL: https://www.jianshu.com/p/489c3aff61bd/