通过将 html 转换为图像,可以捕捉 html 内容的外观和布局,并生成静态图像文件。这一技术具有广泛的应用领域,包括生成网站预览、创建屏幕截图、对网页进行归档、以及将 html 内容整合到主要处理图像的应用程序中。本文将介绍在 python 环境中利用 spire.doc for python 库将 html 文件或 html 字符串转换为图像的方法。
安装 spire.doc for python
本教程需要用到 spire.doc for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.doc
如果您不确定如何安装,请参考:如何在 vs code 中安装 spire.doc for python
用 python 将 html 文件转换为图像
\在使用 document.loadfromfile() 方法将 html 文件加载为 document 对象时,该方法会自动将其内容呈现为 word 文档的形式。然后,开发者可以使用 document.saveimagetostreams() 方法将指定页面保存为图像流并写入图像文件。
以下是使用 python 将 html 文件转换为图像的操作步骤:
- 创建一个 document 对象。
- 使用 document.loadfromfile() 方法加载 html 文件。
- 使用 document.saveimagetostreams() 方法将特定页面转换为图像流。
- 将图像流写入 png 文件。
- python
from spire.doc import document
from spire.doc import fileformat
from spire.doc import xhtmlvalidationtype
from spire.doc import imagetype
# 创建document类的对象
doc = document()
# 载入html文件
doc.loadfromfile("g:/文档/示例22.html", fileformat.html, xhtmlvalidationtype.none)
# 将文档第二页保存为图像
imagestream = doc.saveimagetostreams(0, imagetype.bitmap)
# 将图像写入png文件
with open("output/html转图像.png", "wb") as imagefile:
imagefile.write(imagestream.toarray())
doc.close()
用 python 将 html 字符串转换为图像
使用 paragraph.appendhtml() 方法可以将简单的 html 字符串(通常是文本、链接及其格式)呈现为 word 文档内容,然后再使用 document.saveimagetostreams() 方法将其转换为图像流并写入文件,即可完成 html 字符串到图像的转换。
以下是在 python 程序中将 html 字符串转换为图像的操作步骤:
- 创建一个 document 类的对象。
- 使用 document.addsection() 方法添加一个节到文档。
- 使用 section.addparagraph() 方法添加一个段落到节。
- 指定 html 字符串,并使用 paragraph.appendhtml() 方法将其添加到段落中。
- 使用 document.saveimagetostreams() 方法将特定页面转换为图像流。
- 将图像流写入 png 文件。
- python
from spire.doc import document
from spire.doc import imagetype
# 创建document类的对象
doc = document()
# 添加一个节到文档
sec = doc.addsection()
# 添加一个段落到节
par = sec.addparagraph()
# 指定html字符串
htmlstring = """
旅游统计信息
python 将 html 转换为图像-ag凯发旗舰厅
以下是一些旅游方面的统计信息:
热门旅游目的地
- 巴黎
- 罗马
- 东京
- 纽约
旅游收入排行榜
国家
收入(亿美元)
法国
79.5
美国
76.9
西班牙
67.7
意大利
58.3
"""
# 将html字符串所展示的内容插入到段落中
par.appendhtml(htmlstring)
# 将文档第一页转换为图像
imagestream = doc.saveimagetostreams(0, imagetype.bitmap)
# 将图像写入png文件
with open("output/html字符串转图像.png", "wb") as imagefile:
imagefile.write(imagestream.toarray())
doc.close()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。