Java:使用 GroupDocs.Editor 将网页转换为 DOCX

网页转换为 DOCX 使您能够将任何在线 HTML 页面转换为可完全编辑的 Word 文档,便于共享、打印或进一步自定义。无论是需要归档营销文章、从仪表板生成报告,还是提供法律通知的可打印版本,转换都会保留布局、样式和嵌入的图像。在本指南中,我们将演示如何使用 GroupDocs.Editor for Java 读取 HTML 文件,打包其资源,并将结果保存为 HTML 和 DOCX/DOCM 文件。

快速答复

  • “将网页转换为 docx” 是什么意思? 它将 HTML 标记及其资源转换为可编辑的 Word(DOCX/DOCM)文件。
  • 哪个库负责转换? GroupDocs.Editor for Java。
  • 我需要许可证吗? 免费试用可用于测试;生产环境需要付费许可证。
  • 需要哪个 Java 版本? Java 8 或更高。
  • 我可以保留 CSS 和图像吗? 可以——编辑器在转换过程中会保留链接的样式表和图像。

什么是“将网页转换为 docx”?

加载 HTML 源码,打包所有引用的 CSS 或图像,并生成一个与原始布局相匹配的 Word 处理文档。转换会保留标题、表格、列表和样式,生成的文件可在 Microsoft Word 或任何兼容编辑器中打开并编辑,无需手动重新格式化或重建。

为什么使用 GroupDocs.Editor for Java?

GroupDocs.Editor 提供高级 API,能够在 2 秒以内将高达 150 MB 的文件从 HTML 转换为 DOCX,支持 30 多种 HTML 元素,并自动嵌入 CSS 和图像。它跨平台运行,无需本地依赖,并保证在 Word、LibreOffice 和 Google Docs 中的布局一致性。

前置条件

必需的库、版本和依赖项

  • Apache Commons IO – 简化文件 I/O。
  • GroupDocs.Editor – 版本 25.3(或最新稳定版)。

环境设置要求

  • 已安装 JDK 8 或更高版本。
  • 使用 IntelliJ IDEA 或 Eclipse 等 IDE。

知识前提

  • 基本的 Java 和 Maven 项目结构。
  • 熟悉 HTML 文件及其文件夹布局。

设置 GroupDocs.Editor for Java

Maven 设置

将 GroupDocs 仓库和依赖添加到您的 pom.xml

<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/editor/java/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-editor</artifactId>
        <version>25.3</version>
    </dependency>
</dependencies>

直接下载

或者,您可以从 GroupDocs.Editor for Java releases 下载最新版本。

获取许可证的步骤

  • Free Trial: 开始试用以探索 API。
  • Temporary License: 使用限时密钥进行延长评估。
  • Purchase: 获取商业许可证用于生产部署。

实现指南

以下是逐步演练。每个代码块保持原教程不变,周围的说明已为清晰起见进行扩展。

功能 1 – 从文件读取 HTML 内容

为什么重要: 要转换网页,首先需要将原始 HTML 作为 String 获取。使用 Apache Commons IO 可以一行代码完成。

1.1 导入所需库

import java.io.File;
import org.apache.commons.io.FileUtils;

1.2 指定文件路径

YOUR_DOCUMENT_DIRECTORY 替换为存放源 HTML 的文件夹。

String htmlFilePath = "YOUR_DOCUMENT_DIRECTORY/sample_html_body.html";

1.3 将内容读取为字符串

FileUtils.readFileToString 方法使用 UTF‑8 编码读取文件,保留所有字符。

String content = FileUtils.readFileToString(new File(htmlFilePath), "utf-8");
// Note: This method reads the HTML content as a UTF-8 encoded string, ensuring accurate representation of characters.

功能 2 – 从 HTML 内容初始化 EditableDocument

为什么重要: EditableDocument 是核心对象,它将标记与其资源(CSS、图像)组合,使编辑器能够处理完整的文档。

EditableDocument 类表示单个 HTML 文档及其链接资源,实现无缝转换为其他格式。

2.1 导入 GroupDocs 库

import com.groupdocs.editor.EditableDocument;

2.2 指定资源文件夹路径

该文件夹应包含 HTML 引用的任何 CSS 文件、图像或其他资产。

String resourceFolderPath = "YOUR_DOCUMENT_DIRECTORY/sample_html_body_resources";

2.3 初始化 EditableDocument

此调用将 HTML 标记与资源文件夹合并,创建内存中的可编辑文档。

EditableDocument inputDoc = EditableDocument.fromMarkupAndResourceFolder(content, resourceFolderPath);
// This method combines the HTML markup with its linked resources to form a complete editable document.

功能 3 – 检查文档资源

为什么重要: 了解样式表或图像的数量有助于决定是否需要额外处理(例如图像优化)。

3.1 统计样式表和图像数量

int stylesheetCount = inputDoc.getCss().size();
int imageCount = inputDoc.getImages().size();
// These methods provide insights into how many stylesheets or images are linked within your HTML content.

功能 4 – 将 EditableDocument 保存为 HTML

为什么重要: 有时您希望在编辑后保留 HTML 版本,或需要验证资源是否正确打包。

4.1 导入保存选项库

import com.groupdocs.editor.Editor;

4.2 指定 HTML 输出路径

String outputHtmlFilePath = "YOUR_OUTPUT_DIRECTORY/_output.html";

4.3 将文档保存为 HTML

save 方法将编辑后的文档写回磁盘,保留其结构。

inputDoc.save(outputHtmlFilePath);
// This saves all changes made in memory back into a new HTML document, maintaining its editable format and resources.

功能 5 – 将 EditableDocument 保存为文字处理文档(DOCX/DOCM)

为什么重要: 转换为 DOCX/DOCM 可获得可完全编辑的 Word 文件,可在 Microsoft Word、LibreOffice 或任何兼容编辑器中打开。

WordProcessingFormats 枚举定义了要生成的具体 Word 格式(DOCX 或 DOCM)。

5.1 导入保存选项库

import com.groupdocs.editor.options.WordProcessingSaveOptions;
import com.groupdocs.editor.formats.WordProcessingFormats;

5.2 指定 DOCX/DOCM 输出路径

String outputDocmFilePath = "YOUR_OUTPUT_DIRECTORY/_output.docm";

5.3 设置保存选项和格式

这里我们明确请求 DOCM 格式(宏启用的 Word 文档)。您可以将其切换为 "docx" 以生成标准文档。

WordProcessingFormats saveFormat = WordProcessingFormats.fromExtension("docm");
WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(saveFormat);
// Here, we define the desired output format (DOCM) along with any specific saving options needed for conversion.

Editor 是核心类,接受 EditableDocument 并将其写入所选的 Word 格式。

5.4 将文档保存为 DOCM

我们使用 Editor 类执行最终转换。

Editor editor = new Editor(htmlFilePath);
editor.save(inputDoc, outputDocmFilePath, saveOptions);
// This final step converts and saves your HTML content into a fully functional Word document (DOCM).

实际应用

  • Dynamic Report Generation: 从实时仪表板提取表格,转换为 Word 并通过电子邮件发送自动报告。
  • Content Management Systems: 为文章提供“导出为 Word”按钮,保留样式和图像。
  • Legal Document Preparation: 将网页发布的法规转为可编辑的合同或政策文件。
  • Educational Material Compilation: 将 HTML 页面上的讲义汇总成一本学习指南。
  • Business Proposal Creation: 将营销网页转换为精美的 DOCM 提案供客户使用。

性能考虑

  • Optimize Memory Usage: 对于大型 HTML 文件,增加 JVM 堆内存 (-Xmx2g) 或分块处理文档。
  • Load Resources Asynchronously: 在基于 Web 的工具中,使用后台线程加载 CSS 和图像,以保持 UI 响应。

常见问题与解决方案

问题原因解决方案
DOCM 中缺少图像资源文件夹路径不正确确认 resourceFolderPath 指向包含所有图像文件的文件夹。
转换后样式不同CSS 未加载确保 inputDoc.getCss() 返回预期的计数;将缺失的样式表添加到资源文件夹。
大页面出现 OutOfMemoryErrorHTML 大且资源众多增加 JVM 堆内存或在转换前将 HTML 拆分为更小的部分。

常见问答

问:我可以直接转换实时 URL 而无需先保存 HTML 吗?
答:是的。使用 JsoupHttpClient 下载页面内容,然后将字符串传入 EditableDocument.fromMarkupAndResourceFolder

问:GroupDocs.Editor 是否同时支持转换为 DOCX 和 DOCM?
答:当然。将 WordProcessingFormats.fromExtension("docx") 中的扩展名改为 "docx" 并相应调整输出文件名即可。

问:如果我的 HTML 引用了 CDN 上的外部 CSS,该怎么办?
答:在初始化 EditableDocument 之前,将这些 CSS 文件下载到资源文件夹中,或者在启用网络访问时让编辑器自行获取。

问:免费试用是否需要许可证?
答:试用无需许可证密钥,但受限于 30 天和最大文档大小。生产环境请购买许可证。

问:我能在 Word 输出中保留 JavaScript 功能吗?
答:不能。Word 处理格式不支持客户端 JavaScript,只保留静态内容和样式。


最后更新: 2026-07-02
测试版本: GroupDocs.Editor 25.3
作者: GroupDocs

相关教程