使用 GroupDocs.Editor for Java 保存带密码的 Word

在本教程中,您将了解 如何在编辑 Java 中的 Word 文档时保存带密码的 Word 保护。无论您是需要 edit word document java 文件、使用密码保护它们,还是将 DOCX 转换为 DOCM 格式,GroupDocs.Editor 都为您提供一种简洁、内存高效的方式。让我们完整地 walkthrough 过程——从设置库、加载受密码保护的文件、定制编辑选项,到最终安全保存文档。

快速答案

  • 什么库可以让您在 Java 中编辑 Word 文档? GroupDocs.Editor for Java。
  • 我可以打开受密码保护的文件吗? 是的 – 使用带密码的 WordProcessingLoadOptions
  • 如何在保存时降低内存消耗?WordProcessingSaveOptions 中设置 optimizeMemoryUsage(true)
  • 生产环境需要许可证吗? 需要有效的 GroupDocs.Editor 许可证。
  • 哪种格式支持宏和只读保护? DOCM 格式。
  • 如何在编辑时提取嵌入的字体? 使用 FontExtractionOptions.ExtractEmbeddedWithoutSystem
  • 编辑后我可以将 DOCX 转换为 DOCM 吗? 可以 – 保存时指定 WordProcessingFormats.Docm

什么是 “保存带密码的 Word”?

将 Word 文件保存为密码保护意味着文档已加密,只有知道密码的用户才能打开。这为机密内容增加了一层安全性,尤其是在文件以电子方式存储或传输时。

为什么使用 GroupDocs.Editor for Java?

GroupDocs.Editor for Java 提供了一套完整的 Word 文档编辑工具,支持密码保护、宏处理和高效的内存使用,使其非常适合企业和云应用。它可无缝集成到 Maven 项目,提供格式转换,并包含诸如字体提取和分页模式等高级功能,以提升用户体验。

  • 功能完整的编辑 – 修改文本、图像、表格,甚至宏。
  • 密码处理 – 轻松打开和保存受保护的文件。
  • 内存优化选项 – 适用于大型文档或云环境。
  • 跨平台 – 在任何兼容 Java 的平台上运行(Java 8+)。
  • 量化收益: GroupDocs.Editor 支持 30+ 文件格式,并且可以在不将整个文件加载到内存的情况下编辑高达 500 MB 的文档,将峰值 RAM 消耗降低至 70 %

前提条件

在开始之前,请确保您对 Java 编程有扎实的了解。熟悉 Maven 项目设置以及在 Java 中处理文件 I/O 操作会有所帮助。此外,请确保您的开发环境已配置为 Java 8 或更高版本,以便与 GroupDocs.Editor 无缝配合。

必需的库和依赖项

在本教程中,我们将使用 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 for Java

安装 GroupDocs.Editor 后,您需要初始化并配置环境:

  1. 添加上述 Maven 依赖或下载 JAR 文件。
  2. 在您喜欢的 IDE(例如 IntelliJ IDEA、Eclipse)中建立基本的项目结构。
  3. 如果使用 Maven,请确保 pom.xml 包含所需的仓库。

完成这些步骤后,您即可开始使用 GroupDocs.Editor 实现文档管理功能。

实现指南

我们将把过程分为三个主要部分:文档加载与密码处理、文档编辑选项以及内容编辑与保存。让我们逐步探索每个功能。

功能 1:文档加载与密码处理

概述: 本节演示如何使用 GroupDocs.Editor for Java 加载受密码保护的文档。在处理需要访问控制的敏感文档时,这一点至关重要。

步骤 1:定义文档路径

首先,指定您的 Word 文档所在位置:

String inputFilePath = "YOUR_DOCUMENT_DIRECTORY/sample.docx";

步骤 2:创建 InputStream

接下来,初始化文件输入流以读取文档:

InputStream fs = new FileInputStream(inputFilePath);

步骤 3:使用密码保护设置加载选项

WordProcessingLoadOptions 定义了 Word 文档的加载方式,包括密码处理和格式设置。
要处理受密码保护的文档,请配置加载选项:

WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.setPassword("some_password_to_open_a_document");

步骤 4:使用 Editor 加载文档

Editor 是使用指定选项加载、编辑和保存文档的核心类。
最后,使用 Editor 类打开并处理文档:

Editor editor = new Editor(fs, loadOptions);

功能 2:文档编辑选项

概述: 配置如字体提取和语言信息等编辑选项可以提升文档处理能力。

步骤 1:创建编辑选项

首先初始化编辑选项对象:

WordProcessingEditOptions editOptions = new WordProcessingEditOptions();

步骤 2:启用字体提取

FontExtractionOptions 控制编辑期间嵌入字体的处理方式,允许在不依赖系统字体的情况下提取。
要确保使用嵌入字体,请配置以下选项:

editOptions.setFontExtraction(FontExtractionOptions.ExtractEmbeddedWithoutSystem);

步骤 3:提取语言信息

启用语言信息对于多语言文档处理很有用:

editOptions.setEnableLanguageInformation(true);

步骤 4:启用分页模式

为了更方便的编辑,尤其是处理长文档时,请开启分页模式:

editOptions.setEnablePagination(true);

功能 3:内容编辑与文档保存

概述: 本节展示如何修改文档内容并使用特定配置(如格式和密码保护)保存带密码的 Word

步骤 1:提取原始内容

首先提取原始内容和资源:

String originalContent = beforeEdit.getContent();
List<IHtmlResource> allResources = beforeEdit.getAllResources();

步骤 2:修改文档内容

根据需要更改文档文本。在此示例中,我们将 “document” 替换为 “edited document”:

String editedContent = originalContent.replace("document", "edited document");
EditableDocument afterEdit = EditableDocument.fromMarkup(editedContent, allResources);

步骤 3:设置保存选项

WordProcessingSaveOptions 指定 Word 文档的保存参数,如格式、密码保护和内存优化。
配置文档的保存方式,包括格式和密码:

WordProcessingFormats docmFormat = WordProcessingFormats.Docm;
WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docmFormat);
saveOptions.setPassword("password");
saveOptions.setEnablePagination(true);
saveOptions.setLocale(Locale.US);
saveOptions.setOptimizeMemoryUsage(true);
saveOptions.setProtection(new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write_password"));

步骤 4:保存编辑后的文档

最后,将编辑后的文档写入输出文件:

String outputPath = "YOUR_OUTPUT_DIRECTORY/edited_output.docm";
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
editor.save(afterEdit, outputStream, saveOptions);
try (FileOutputStream outputFile = new FileOutputStream(outputPath)) {
    outputStream.writeTo(outputFile);
}

如何打开受保护的 Word 文件?

通过创建 WordProcessingLoadOptions 实例、调用 setPassword("yourPassword"),并将其传递给 Editor 构造函数来加载受保护的文件。这种直接的方法在内存中解密文档,使您能够在不在磁盘上暴露原始密码的情况下编辑或转换它。

保存时如何设置密码?

创建 WordProcessingSaveOptions 对象,调用 setPassword("newPassword"),并可选地启用 setReadOnlyRecommended(true) 以获得额外保护。随后使用这些选项调用 Editor 实例的 save 方法。文件将使用 AES‑256 加密写入,确保强安全性。配置密码后,您还可以设置其他安全选项,如只读推荐、限制编辑或强制加密标准。这些设置确保保存的文件符合组织的合规要求。

编辑后如何将 DOCX 转换为 DOCM?

WordProcessingSaveOptions 中指定 WordProcessingFormats.Docm,即可将编辑后的 DOCX 转换为宏启用的 DOCM 文件。这会保留任何现有的 VBA 宏,确保它们在 Office 中仍可运行。您还可以定义输出位置,并应用与原始文档相同的密码或只读设置。WordProcessingFormats 列举了支持的输出格式,如 DOCX 和 DOCM,用于保存文档。

常见使用场景

  • 安全文档处理: 在编辑机密合同或人力资源文件时使用密码保护。
  • 批量处理: 在企业文档管理系统中自动编辑数十个文件。
  • 内容审查工作流: 让审阅者在最终批准前直接在 Word 文件中编辑和评论。

性能考虑

为确保在使用 GroupDocs.Editor 时获得最佳性能:

  • 最小化内存使用:保持启用 optimizeMemoryUsage(true)
  • 将大文件分块处理,而不是将整个文档加载到内存中。
  • 定期升级到最新的 GroupDocs.Editor 版本,以获得性能提升和错误修复。
  • 量化声明: 在启用内存优化的情况下,最新版本可在标准 8 核服务器上将 300 页 DOCX 处理时间控制在 2 秒 以下。

常见问题

Q: 如何打开受密码保护的文档?
A: 在创建 Editor 实例之前,使用 WordProcessingLoadOptions 并调用 setPassword("your_password")

Q: 我可以编辑包含宏的 DOCM 文件吗?
A: 可以。使用 WordProcessingFormats.Docm 保存编辑后的文档,以保留宏。

Q: 在保存大文件时降低内存消耗的最佳方法是什么?
A: 在 WordProcessingSaveOptions 中启用 optimizeMemoryUsage(true),并考虑使用分页模式。

Q: 编辑时是否可以提取嵌入的字体?
A: 当然。设置 editOptions.setFontExtraction(FontExtractionOptions.ExtractEmbeddedWithoutSystem)

Q: 在生产环境使用 GroupDocs.Editor 是否需要特殊许可证?
A: 生产部署需要有效的 GroupDocs.Editor 许可证;可获取临时许可证进行评估。

Q: 编辑后如何将 DOCX 转换为 DOCM?
A: 在创建 WordProcessingSaveOptions 时指定 WordProcessingFormats.Docm(如保存步骤所示)。

结论

本指南涵盖了在 Java 中编辑 Word 文档时 如何保存带密码的 Word 保护。您学习了如何加载受密码保护的文件、定制编辑选项(如提取嵌入字体),以及最终将文档保存为带只读保护且内存使用优化的 DOCM。通过将 GroupDocs.Editor 集成到您的 Java 应用程序中,您可以构建安全、高性能的文档处理解决方案,以满足现代业务需求。


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

相关教程