使用 imgkit 将excel中的文字生成为图片 (html转图片)

用户要求将300多讲者信息生成为图片, 思路:将excel里的内容放到html里  将html转换成图片 使用到的工具如下:

pip install pandas == 0.24.1

pip install imgkit == 1.0.2

pip install wkhtmltopdf == 0.2

因为需要将数据内容放到html  所以是在django里进行完成的 使用的是django 自带的 loader,Context 来进行替换的,python代码如下

# -*- coding:utf-8 -*-
import imgkit
import pandas as pd
from django.template import loader,Context

import os,django
os.environ['DJANGO_SETTINGS_MODULE'] = 'xxxx.settings' # 使用Django 的环境
django.setup()

config = imgkit.config(wkhtmltoimage='C:/Program Files/wkhtmltopdf/bin/wkhtmltoimage.exe') # wkhtmltoimage 安装路径 没有的话会报 No wkhtmltoimage executable found: ""
df = pd.read_excel('E:/htmlimg/doc.xlsx')
for i in df.index.values:  
    row_data = df.ix[i, ['name','info']].to_dict()
    t = loader.get_template('demo.html')  # html代码放在templates下
    c =Context({"name":row_data['name'] ,"content":row_data['info'].replace('\n', '<br/>')})
    html = t.render(c) # 生成想要的html
    name = "E:/htmlimg/imgs/%s.png"%(i+1)
    imgkit.from_string(html, name, config=config,options={
      'width': 400,
      'height': 800,
      'encoding': 'UTF-8',
    }) 

html 代码如下:

<!DOCTYPE html>
<html lang="en" style="width: 400px">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta name="viewport" content="width=350px,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover">
</head>
<body style="width: 400px" >
<div style="margin: 10px auto;border: 5px solid #23913a;border-radius: 10px;height: 750px;width:400px">
    <div style="font-size: 30px; height: 80px;line-height: 80px;font-weight: bold;border-bottom: 2px solid #23913a;margin: 0px 10px;text-align: center">{{ name }}</div>
    <div style="padding: 15px">
      {{ content|safe }}
    </div>

</div>
</body>
</html>

用的 excel 文件如下:


生成结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值