警告
本文最后更新于 2021-03-31,文中内容可能已过时。
用于wkhtmltoimage
实用程序将html
转换为img
的python 2
和3包装器使用WebKit
。
安装imgkit和pdfkit
1
2
|
pip3 install imgkit
pip3 install pdfkit
|
下载驱动
网站:https://wkhtmltopdf.org/downloads.html
1
2
3
4
5
|
# centos8
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos8.x86_64.rpm
# centos7
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos7.x86_64.rpm
|
安装
yum install wkhtmltox-0.12.6-1.centos7.x86_64.rpm
使用
简单的示例:
1
2
3
4
5
6
7
|
import imgkit
# 通过连接的方式
imgkit.from_url('http://google.com', 'out.jpg')
# 通过html的方式
imgkit.from_file('test.html', 'out.jpg')
# 通过字符串的方式
imgkit.from_string('Hello!', 'out.jpg')
|
使用多种url和文件传递一个列表:
1
2
|
imgkit.from_url(['google.com', 'yandex.ru', 'engadget.com'], 'out.jpg')
imgkit.from_file(['file1.html', 'file2.html'], 'out.jpg')
|
传递一个打开过的文件:
1
2
|
with open('file.html') as f:
imgkit.from_file(f, 'out.jpg')
|
进一步加工生成IMG,你可以读取一个变量:
1
2
|
# Use False instead of output path to save pdf to a variable
img = imgkit.from_url('http://google.com', False)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
options = {
'format': 'png',
'crop-h': '3',
'crop-w': '3',
'crop-x': '3',
'crop-y': '3',
'encoding': "UTF-8",
'custom-header' : [
('Accept-Encoding', 'gzip')
]
'cookie': [
('cookie-name1', 'cookie-value1'),
('cookie-name2', 'cookie-value2'),
],
'no-outline': None
}
imgkit.from_url('http://google.com', 'out.png', options=options)
|
默认的,IMGKit将会显示所有的wkhtmltoimage输出。如果你不想这样,你需要传递 quiet选项:
1
2
3
|
options = {
'quiet': ''
}
|
你可以在转化文件或者字符串时使用css选项指定额外的CSS文件.
1
2
3
4
5
6
7
|
# Single CSS file
css = 'example.css'
imgkit.from_file('file.html', options=options, css=css)
# Multiple CSS files
css = ['example.css', 'example2.css']
imgkit.from_file('file.html', options=options, css=css)
|
乱码
如果图片中中文无法显示,为一个一个的方格,可下载SimSun.ttf
修改centos字体
1
|
cd /usr/share/fonts/dejavu
|