将 HTML 文件转换为图像文件格式(如 PNG 或 JPEG)在存档和长期存储方面具有显著优势。原始 HTML 由可编辑的代码组成,依赖于 CSS 和 JavaScript 等外部资源,而图像则不同,它提供了固定的、不可更改的内容表现形式。因此,图像是保存网页在特定时间点的准确外观的理想选择。
本文将介绍如何使用 Spire.Doc for Java 将 HTML 文件和字符串转换为图像文件。
安装 Spire.Doc for Java
首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。您可以从这个链接下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码导入 JAR 文件:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>13.5.3</version>
</dependency>
</dependencies>
Java 将 HTML 文件转换为图片
Spire.Doc for Java 提供高效的 HTML 转图片功能,只需三步即可完成转换:首先使用 Document.loadFromFile() 加载 HTML 文件,再通过 Document.saveToImages() 将其转换为 BufferedImage 对象数组,最后可遍历数组将图像按需保存为 PNG、JPG 或 BMP 等常见格式。
使用 Java 将 HTML 文件转换为图片的步骤:
- 创建一个 Document 对象。
- 使用 Document.loadFromFile() 加载 HTML 文件。
- 修改页边距等页面属性,以控制输出图像的布局。
- 调用 Document.saveToImages() 将文档渲染为 BufferedImage 对象数组。
- 循环遍历 BufferedImage 数组,并使用 ImageIO.write() 将每张图片保存为常用格式(PNG、JPG、BMP)。
- Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.ImageType;
import com.spire.doc.documents.XHTMLValidationType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ConvertHtmlFileToImage {
public static void main(String[] args) throws IOException {
// 创建一个 Document 对象
Document document = new Document();
// 加载一个 HTML 文件
document.loadFromFile("C:\\Users\\Administrator\\Desktop\\Html.html", FileFormat.Html, XHTMLValidationType.None);
// 获取第一个节
Section section = document.getSections().get(0);
// 设置页面边距
section.getPageSetup().getMargins().setAll(2);
// 将文档转换为 BufferedImage 数组
BufferedImage[] images = document.saveToImages(ImageType.Bitmap);
// 遍历图像
for (int index = 0; index < images.length; index++)
{
// 指定输出文件名
String fileName = String.format("C:\\Users\\Administrator\\Desktop\\Output\\image_%d.png", index);
// 将每个图像保存为 PNG 文件
File file= new File(fileName);
ImageIO.write(images[index], "PNG", file);
}
// 释放资源
document.dispose();
}
}
Java 将 HTML 字符串转换为图像
在动态应用场景中,您可能需要通过编程方式生成或修改 HTML 内容,例如根据用户输入或数据库查询动态创建 HTML 字符串。针对这一需求,Spire.Doc for Java 提供了强大的解决方案:通 Paragraph.appendHTML() 方法,您可以直接将 HTML 内容无缝插入文档段落,实现高效灵活的文档处理。
使用 Java 将 HTML 字符串转换为图片的步骤:
- 创建一个 Document 对象并添加一个节。
- 修改页边距等页面属性,以控制输出图像的布局。
- 使用 Secition.addParagraph() 创建一个用于保存 HTML 内容的段落。
- 从 HTML 文件或其他数据源读取 HTML 字符串。
- 使用 Paragraph.appendHTML() 将 HTML 字符串添加到段落中。
- 调用 Document.saveToImages() 将文档渲染为 BufferedImage 对象数组。
- 循环遍历 BufferedImage 数组,并使用 ImageIO.write() 将每张图片保存为常用格式(PNG、JPG、BMP)。
- Java
import com.spire.doc.Document;
import com.spire.doc.Section;
import com.spire.doc.documents.ImageType;
import com.spire.doc.interfaces.IParagraph;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ConvertHtmlStringToImage {
public static void main(String[] args) throws IOException {
// 创建一个 Document 对象
Document document = new Document();
// 添加一个节
Section section = document.addSection();
// 设置页面边距
section.getPageSetup().getMargins().setAll(2);
// 添加一个段落
IParagraph paragraph = section.addParagraph();
// 从文件中读取 HTML 字符串
String htmlFilePath = "C:\\Users\\Administrator\\Desktop\\Html.html";
String htmlString = new String(Files.readAllBytes(Paths.get(htmlFilePath)), "UTF-8");
// 将 HTML 字符串附加到段落中
paragraph.appendHTML(htmlString);
// 将文档转换为 BufferedImage 数组
BufferedImage[] images = document.saveToImages(ImageType.Bitmap);
// 遍历图像
for (int index = 0; index < images.length; index++)
{
// 指定输出文件名
String fileName = String.format("C:\\Users\\Administrator\\Desktop\\Output\\image_%d.png", index);
// 将每个图像保存为 PNG 文件
File file= new File(fileName);
ImageIO.write(images[index], "PNG", file);
}
// 释放资源
document.dispose();
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。