从 Word 中提取图像并使用 GroupDocs.Editor Java 创建可编辑文档

在当今快速发展的企业中,能够以编程方式从 Word 中提取图像是一个改变游戏规则的能力。无论您需要将 Word 转换为 HTML从 Word 生成 HTML,还是以Java 风格编辑 Word 文档,GroupDocs.Editor for Java 都为您提供可靠的高性能方式来自动化这些任务。本指南将带您逐步了解所需的一切——从环境设置到高级编辑——让您能够在几分钟内构建能够自动化报告生成批量处理 Word 文档的解决方案。

快速答案

  • 加载 Word 文件的主要类是什么? Editor
  • 哪个方法返回用于编辑的 HTML 标记? edit() 返回一个 EditableDocument
  • 如何从 Word 文档中提取图像?EditableDocument 上使用 getAllResources()
  • 我可以将编辑后的内容保存回磁盘吗? 可以,调用 EditableDocumentsave() 方法
  • 开发是否需要许可证? 免费试用或临时许可证可用于测试;生产环境需要正式许可证

什么是“从 Word 中提取图像”?

从 Word 中提取图像是指加载 .docx 文件,将其转换为可编辑的 HTML 表示,然后提取出所有嵌入的图像、字体或样式表。这让您能够完全控制每个资源,从而可以单独存储、在 CDN 上重新托管,或嵌入到其他文档中。

为什么使用 GroupDocs.Editor for Java?

  • 完整的 Word 支持 – 在没有 Microsoft Office 的情况下进行编辑、提取和转换。
  • 无缝的 HTML 转换 – 非常适合基于 Web 的编辑器或 CMS 集成。
  • 强大的资源处理 – 一次调用即可获取图像、字体和 CSS。
  • 可扩展的性能 – 适用于批量处理和大规模报告生成。
  • 便捷的 Java API – 与 Java 8+ 以及流行的 IDE 自然配合。

前置条件

  • Java Development Kit (JDK) 8 或更高版本。
  • 如 IntelliJ IDEA 或 Eclipse 的 IDE。
  • 基本的 Java 知识并熟悉 Maven。

必需的库

在项目中包含 GroupDocs.Editor 库。使用 Maven 将其添加为依赖:

<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 下载最新版本。

许可证获取

要使用 GroupDocs.Editor,您可以先使用免费试用、申请临时许可证或购买正式许可证。该库开箱即用,适用于评估,切换到生产许可证只需更新许可证文件即可。

如何使用 GroupDocs.Editor Java 创建可编辑文档

安装

  1. 添加依赖 – 确保 pom.xml 包含上面的 Maven 代码片段。
  2. 下载 JAR – 如果您更喜欢手动设置,请从官方 GroupDocs site 获取最新的 JAR。
  3. 配置许可证 – 将您的 GroupDocs.Editor.lic 文件放在 resources 文件夹中,或以编程方式设置。

基本初始化

环境准备好后,您可以使用 Word 文件的路径实例化 Editor 类:

import com.groupdocs.editor.Editor;

// Initialize Editor with a sample Word document
Editor editor = new Editor("YOUR_DOCUMENT_DIRECTORY/sample.docx");

这行简单的代码即可为您提供一个功能完整的编辑器,能够加载、编辑和保存文档。

步骤指南

步骤 1:将文档加载为 EditableDocument

将文档加载为 EditableDocument 是进行任何修改的第一步。

import com.groupdocs.editor.Editor;
import com.groupdocs.editor.EditableDocument;

// Load the document into an EditableDocument
Editor editor = new Editor("YOUR_DOCUMENT_DIRECTORY/sample.docx");
EditableDocument beforeEdit = editor.edit();
  • Editor – 处理文件 I/O 和格式检测。
  • EditableDocument – 以可编辑的 HTML 形式表示文档。

步骤 2:编辑 Word 内容(如何编辑 Word)

现在您可以操作 HTML 字符串,替换占位符或更新样式。更改后,调用 save() 进行持久化。

步骤 3:提取图像和其他资源

GroupDocs.Editor 使提取每个嵌入资源变得轻而易举,这正是从 Word 中提取图像的方式。

import com.groupdocs.editor.htmlcss.resources.IHtmlResource;
import java.util.List;

// Extract embedded HTML, images, fonts, and CSS
String allAsHtmlInsideOneString = beforeEdit.getEmbeddedHtml();
List<IHtmlResource> allResources = beforeEdit.getAllResources();

// Accessing specific resources
List<String> stylesheets = beforeEdit.getCssContent();
  • getEmbeddedHtml() – 返回完整的 HTML 标记。
  • getAllResources() – 提供原始 Word 文件中所有嵌入的图像、字体或样式表的列表。
  • **extract images from word** – 只需遍历 allResources,查找 ImageResource` 类型的对象。

步骤 4:调整 HTML 标记中的外部链接

如果文档中包含需要指向自定义处理程序(例如 CDN)的链接,您可以即时重写它们。

String customImagesRequesthandlerUri = "http://example.com/ImagesHandler/id=";
String htmlMarkup = beforeEdit.getContentString(customImagesRequesthandlerUri);
  • getContentString() – 为所有图像引用注入提供的 URI 前缀,使您能够控制图像的提供位置。

步骤 5:将编辑后的文档保存到磁盘

完成所有编辑和资源调整后,将结果写回 HTML 文件(或稍后重新转换为 DOCX)。

// Save the edited document as an HTML file
beforeEdit.save("YOUR_OUTPUT_DIRECTORY/output.html");
  • save() – 将编辑后的 HTML 及任何关联资源持久化到指定文件夹。

步骤 6:检查释放状态

正确的资源管理至关重要,尤其是在批量处理 Word 文档时。

String res = !beforeEdit.isDisposed() ? "not" : "already";
  • isDisposed() – 如果文档的本机资源已被释放则返回 true。完成后请始终释放大型文档。

步骤 7:从 HTML 创建 EditableDocument

您也可以从现有的 HTML 文件或原始标记开始,这在将 Word 转换为 HTML的场景中非常方便。

import com.groupdocs.editor.EditableDocument;

// Create EditableDocument from file and markup
EditableDocument afterEditFromFile = EditableDocument.fromFile("YOUR_OUTPUT_DIRECTORY/output.html");
EditableDocument afterEditFromMarkup = EditableDocument.fromMarkup(htmlMarkup, allResources);
  • fromFile() – 加载之前由 save() 保存的 HTML 文件。
  • fromMarkup() – 直接从字符串及其资源列表构建 EditableDocument

如何使用 GroupDocs.Editor 将 Word 转换为 HTML

edit() 方法会自动将加载的 .docx 转换为 HTML 表示。随后您可以使用 getEmbeddedHtml()getContentString() 获取从 Word 生成 HTML的输出,该输出可嵌入网页、电子邮件或用于后续存储。

使用 GroupDocs.Editor 批量处理 Word 文档

当需要处理数十或数百个模板时,可将上述步骤封装在循环或 CompletableFuture 流水线中。记得在每个文档处理完后调用 dispose()(或让 GC 处理),以保持低内存使用。

常见问题及解决方案

  • 大型文档导致 OutOfMemoryError – 使用流式处理资源,而不是一次性加载全部到内存;完成后立即释放每个 EditableDocument
  • 转换后图像未显示 – 确保向 getContentString() 传递正确的 URI 前缀,或将提取的资源复制到目标文件夹。
  • 许可证未被识别 – 验证 GroupDocs.Editor.lic 文件是否在类路径上,或在创建 Editor 前以编程方式设置许可证。

常见问答

Q: 我可以使用 GroupDocs.Editor Java 编辑 PDF 吗?
A: 是的,GroupDocs.Editor 支持包括 PDF 在内的多种格式。请查看 API reference 获取具体方法。

Q: 我该如何高效处理大型文档?
A: 使用资源管理技巧,例如及时释放 EditableDocument 实例,并使用 Java 的 CompletableFuture 并行处理文件。

Q: GroupDocs.Editor 与所有 Java IDE 兼容吗?
A: 是的,它可在 IntelliJ IDEA、Eclipse 等流行 IDE 中使用。

Q: 在处理大量文件时,extract images from word 的最佳方法是什么?
A: 遍历 EditableDocument.getAllResources() 并过滤出 ImageResource 对象;将它们存储在专用文件夹中或在处理过程中上传到 CDN。

Q: 我可以将编辑后的 HTML 转回 DOCX 文件吗?
A: 当然。修改完成后,使用 EditableDocument.saveAsDocx("path/to/output.docx") 即可。

结论

现在,您已经完整地了解了如何使用 GroupDocs.Editor for Java 从 Word 中提取图像编辑 Word 内容将 Word 转换为 HTML以及生成可编辑文档的全流程。这些技术使您能够自信地构建强大的文档中心应用,并自动化报告生成

下一步

  • 尝试使用动态占位符(例如 {{CustomerName}})编辑模板。
  • 探索 API,以便保存回 DOCX(EditableDocument.saveAsDocx())。
  • 将工作流集成到 Spring Boot 服务中,实现按需文档生成。

最后更新: 2026-02-21
测试环境: GroupDocs.Editor 25.3 for Java
作者: GroupDocs