首页 Python,朝夕不倦

用于wkhtmltoimage实用程序将html转换为img的python 2和3包装器 使用WebKit。

安装imgkit和pdfkit

pip3 install imgkit
pip3 install pdfkit

 下载驱动

网站:https://wkhtmltopdf.org/downloads.html

# 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

使用

简单的示例:

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和文件传递一个列表:

imgkit.from_url(['google.com', 'yandex.ru', 'engadget.com'], 'out.jpg')
imgkit.from_file(['file1.html', 'file2.html'], 'out.jpg')

传递一个打开过的文件:

with open('file.html') as f:
    imgkit.from_file(f, 'out.jpg')

进一步加工生成IMG,你可以读取一个变量:

# Use False instead of output path to save pdf to a variable
img = imgkit.from_url('http://google.com', False)
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选项:

options = {
    'quiet': ''
    }

你可以在转化文件或者字符串时使用css选项指定额外的CSS文件.

# 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
xxxxxxxxx

修改centos字体

cd /usr/share/fonts/dejavu



文章评论

目录