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

这篇具有很好参考价值的文章主要介绍了三种利用python将html文件转图片的方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

第一种:pyecharts自带的snapshot_phantomjs方式

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

前置准备

  • 下载安装phantomjs (下载地址:http://phantomjs.org/download.html)注意里面的phantomjs.exe需要放的路径问题,网上普遍默认是要在环境变量下
  • 安装snapshot-phantomjs包pip install snapshot-phantomjs
  • 使用时可能报错 OSError: [“ReferenceError: Can’t find variable: echarts\n\n undefined:1\nnull\n”],这个问题需要下载echarts.min.js(下载地址:https://echarts.apache.org/zh/download.html 我是点击里面的dist链接跳转到github直接下载echarts.min.js)

实现方法

  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)文档

前置准备

  • 安装aspose-words包pip install aspose-words

实现方法

以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,不限制类型

前置准备

  • 安装imgkit、pdfkit包pip install imgkit `pip install pdfkit
  • 下载安装wkhtmltopdf(下载地址:https://wkhtmltopdf.org/downloads.html)安装后有一下两个exe程序,分别用来转图片和pdf
    python html 转图片,python,开发语言

实现方法

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://www.toymoban.com/news/detail-733952.html

到了这里,关于三种利用python将html文件转图片的方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • img加载图片的三种方式

    最常用的一种方式,无需搭配后端代码 前端代码 后端代码 ​前端代码 后端代码

    2024年02月07日
    浏览(33)
  • 利用html做一个3D 图片动态效果

    今天分享一个3D图片动态效果 不多废话上代码 在倒数第6行src=后是图片地址 可以自行更改 如有侵权请联系352648773@qq.com邮箱 插一条:如果有人想要一些好玩的脚本(vbs,bat,html)同样联系我邮箱

    2024年02月11日
    浏览(30)
  • 将Echarts图表导出为图片的三种方式

     第一种  使用  html2canvas 对dom元素截图     1.npm安装        yarn安装     2.组件引入     3.代码 第二种 使用Echarts官方文档中的 getDataURL 方法 第三种 使用Echarts官方文档中的 toolbox 完整代码

    2024年02月12日
    浏览(34)
  • python利用pandas和csv包两种方式向一个csv文件写入或追加数据

    或者 一行加入一个数据

    2024年02月16日
    浏览(47)
  • 三种方式在HTML使用阿里字体图标--iconfont阿里巴巴矢量图标库

    好久没用到阿里巴巴的图标,突然要用到就发现不会用了,只会导出png格式的图标png了= = 目录 1、字体图标 方法一、本地使用通过类名使用阿里矢量图标 1、把图标添加入库 2、把图标添加到项目  3、下载字体图标 4、使用文件 5、在对应的HTML页面上引入css 6、使用字体图标

    2024年02月16日
    浏览(65)
  • 估计很多人不知道:在PowerPoint中插入图片的三种方式用法和解析

    你知道吗?在我们用PowerPoint制作PPT的时候,往幻灯片中插入本地图片时,除了默认的“插入”按钮,点击插入按钮右边的箭头,还有链接到文件、插入和链接两个选项。 那么,在PowerPoint中插入图片是的插入、链接到文件、插入和链接这三个选项分别是什么含义?有什么作用

    2024年02月04日
    浏览(29)
  • C语言——三种方式实现学生信息管理

    目录 方式一 静态实现 菜单打印函数  初始化学生信息 增加学生信息 

    2023年04月08日
    浏览(19)
  • 【头歌】——数据分析与实践-基于Python语言的文件与文件夹管理-文本 文件处理-利用csv模块进行csv文件的读写操作

    第1关 创建子文件夹 第2关 删除带有只读属性的文件 第3关 批量复制文件夹中的所有文件 未通过本题,如果您通过了本题欢迎补充到评论区,有时间我会整理进来 第1关 读取宋词文件,根据词人建立多个文件 第2关 读取宋词文件,并根据词人建立多个文件夹 第3关 读取宋词文

    2024年01月25日
    浏览(48)
  • Java创建文件的三种方式

    内容来自于韩顺平学Java 在学习其视频下跟着编写 文件创建成功

    2024年04月11日
    浏览(53)
  • C语言中函数宏的三种封装方式详解

      目录 ​编辑 1. 函数宏介绍 3. do{...}while(0) 方式 4. ({}) 方式 5. 总结 函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。 函数宏本质上为宏,可以直接进行定义,例如: 但上述的宏具有一

    2024年02月02日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包