文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

三种利用python将html文件转图片的方式

2023-10-23 20:05

关注

pyecharts的表格组件Table生成的html文件转图片方式

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

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

第一种:pyecharts自带的snapshot_phantomjs方式

snapshot-phantomjs 是 pyecharts + phantomjs 渲染图片的扩展,支持png\jpeg\gif\pdf\svg等格式

前置准备

实现方法

  1. 生成html文件
from pyecharts import options as optsfrom pyecharts.charts import Tablefrom pyecharts.render import make_snapshotfrom snapshot_phantomjs import snapshotfrom pyecharts.options import ComponentTitleOptstable = 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 awdoc = aw.Document("table_base.html")imageOptions = aw.saving.ImageSaveOptions(aw.SaveFormat.JPEG)imageOptions.jpeg_quality = 10imageOptions.horizontal_resolution = 72# Save the pages as JPGfor 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 Files\wkhtmltopdf\bin\wkhtmltoimage.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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯