工作中由python处理后的数据需要自动化发送工作群组

工作需要pyecharts表格组件Table生成html文件转图片,尝试三种方式,只有第三方式成功了

第一种:pyecharts自带snapshot_phantomjs方式

snapshotphantomjspyecharts + phantomjs 渲染图片的扩展支持pngjpeggifpdfsvg格式

前置准备

实现方法

  1. 生成html文件
from pyecharts import options as opts
from pyecharts.charts import Table
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot

from pyecharts.options import ComponentTitleOpts


table = Table()

headers = ["City name", "Area", "Population", "Annual Rainfall"]
rows = [
    ["Brisbane", 5905, 1857594, 1146.4],
    ["Adelaide", 1295, 1158259, 600.5],
    ["Darwin", 112, 120900, 1714.7],
    ["Hobart", 1357, 205556, 619.5],
    ["Sydney", 2058, 4336374, 1214.8],
    ["Melbourne", 1566, 3806092, 646.9],
    ["Perth", 5386, 1554769, 869.4],
]
table.add(headers, rows)
table.set_global_opts(
    title_opts=ComponentTitleOpts(title="Table-基本示例", subtitle="我是副标题支持换行哦")
)
table.render("table_base.html")
  1. html文件转成图片格式png
file_path = "{}/".format(os.path.dirname(os.path.abspath("/root/echarts.min.js")))
Table(init_opts=opts.InitOpts(js_host=file_path))
make_snapshot(snapshot,table.render(),"table0.pdf")

结果仍然报错,TypeError: Table.init() got an unexpected keyword argument ‘init_opts
查找发现snapshot_phantomjs支持别的图导出如Bar、Grid、Line等都可以用这种方式,但是Table组件支持

第二种:aspose.words方式

使用Aspose.Words for Python API。用python读取操作各种类型文档比如 Microsoft Word(DOC、DOCX、ODT)、PDF和 Web(HTML、Markdown文档

前置准备

实现方法

以jpeg为例

import aspose.words as aw
doc = aw.Document("table_base.html")
imageOptions = aw.saving.ImageSaveOptions(aw.SaveFormat.JPEG)
imageOptions.jpeg_quality = 10
imageOptions.horizontal_resolution = 72

# Save the pages as JPG
for page in range(0, doc.page_count):
extractedPage = doc.extract_pages(page, 1)
extractedPage.save(f"C:\Files\Images\Page_{page + 1}.jpg", imageOptions)

结果报错:IndentationError: expected an indented block after ‘for’ statement on line 17
查找发现这种方式只适用于文本页面,能用Document类加载html文件,比如论文很适合。

第三种:imgkit,pdfkit方式

可以html转为图片或者pdf,不限制类型

前置准备

实现方法

import imgkit
 
path_wkimg = r'D:Program Fileswkhtmltopdfbinwkhtmltoimage.exe'  # 工具路径
cfg = imgkit.config(wkhtmltoimage=path_wkimg)
#可以修改参数,图片大小语言
# options={
#     page-size:""
# }
# 将html文件转为图片
imgkit.from_file('table_base.html', 'hellotable.jpg', config=cfg)

运行结果:Loading page (1/2)
Rendering (2/2)
Done
True

在运行路径即可找到对应生成的图片

原文地址:https://blog.csdn.net/u010738528/article/details/131966303

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_17995.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注