在 Java 中使用 GroupDocs.Redaction 对敏感数据进行编辑

GroupDocs.Redaction 是一个 Java 库,能够以编程方式从超过 70 种文档格式中删除机密信息,同时保持原始布局不变。在本教程中,您将学习如何在 Java 应用程序中 编辑敏感数据,将编辑策略应用于一批文件,并在不丢失格式的情况下保存结果。

快速答案

  • 安全文档处理是什么意思? 它指的是在整个工作流中处理、编辑和存储文件,以确保机密数据得到保护。
  • 我可以一次性处理多个文件吗? 可以——通过遍历文件夹,您可以自动将相同的编辑策略应用于每个文档。
  • 我该如何编辑敏感数据? 创建一个定义要隐藏的模式或对象的编辑策略,然后使用该策略运行 Redactor。
  • 生产环境需要许可证吗? 生产环境需要有效的 GroupDocs.Redaction 许可证;评估期间可以使用试用许可证。
  • 我可以在不栅格化的情况下保存编辑后的文档吗? 将 RasterizationOptions.setEnabled(false) 设置为 false,以保持原始文件格式不变。

如何使用 GroupDocs.Redaction 在 Java 文档中编辑敏感数据?

加载您的编辑策略,对目录中的每个文件运行它,并保存输出——全部只需几个简洁的步骤。GroupDocs.Redaction 的 API 允许您批量处理文档,保持布局的同时安全地删除指定的数据,并提供控制栅格化、输出格式和性能特性的选项。

为什么在 Java 中使用 GroupDocs.Redaction?

GroupDocs.Redaction 支持 70 多种输入和输出格式(PDF、DOCX、PPTX、图像等),并允许您定义细粒度的策略,以针对精确的文本、图像或元数据。该库高效处理批量任务,您可以切换栅格化,以保持原始格式或将页面转换为图像以增强安全性。

前置条件

  • Java Development Kit (JDK) 8 或更高版本 已安装。
  • Maven 或其他构建工具用于管理依赖。
  • 基本的 Java 知识并熟悉文件 I/O。

为 Java 设置 GroupDocs.Redaction

Maven 设置

在您的 pom.xml 中添加以下依赖:

以下 Maven 依赖将 GroupDocs.Redaction 添加到您的项目中。

<!-- Maven dependency placeholder -->
<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/redaction/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-redaction</artifactId>
      <version>24.9</version>
   </dependency>
</dependencies>

直接下载

或者,从 GroupDocs.Redaction for Java releases 下载最新的 JAR。

获取许可证

试用许可证可用于开发,但生产部署需要将永久许可证文件放置在应用程序的 resources 文件夹中,并在运行时进行引用。

基本初始化和设置

导入所需的类并创建 Redactor 实例。Redactor 是执行文档编辑操作的主要类。

// Initialization code placeholder
import com.groupdocs.redaction.*;

实施指南

什么是编辑策略?

编辑策略是一组可重用的规则,告诉 Redactor 要隐藏或删除哪些文本模式、图像或元数据。您只需定义一次,即可将其应用于任意数量的文档,从而在所有处理的文件中实现一致的合规性。

RedactionPolicy policy = RedactionPolicy.load("YOUR_POLICY_FILE_PATH");

加载并应用编辑策略

从 XML 或 JSON 文件加载策略 并 将其应用 于文件夹中的每个文档:

// Load and apply policy code placeholder
for (final File fileEntry : new File("YOUR_DOCUMENT_DIRECTORY").listFiles()) {
    final Redactor redactor = new Redactor(fileEntry.getPath());
    try {
        // Apply the loaded redaction policy
        RedactorChangeLog result = redactor.apply(policy);
        
        // Determine output directory based on processing status
        File resultFolder = new File(result.getStatus() != RedactionStatus.Failed ? "YOUR_OUTPUT_DIRECTORY_DONE" : "YOUR_OUTPUT_DIRECTORY_FAILED");
        
        // Save the processed file
        try (FileOutputStream fileStream = new FileOutputStream(resultFolder.getPath() + "/" + fileEntry.getName())) {
            RasterizationOptions options = new RasterizationOptions();
            options.setEnabled(false);
            redactor.save(fileStream, options);
        }
    } finally {
        redactor.close(); // Ensure resources are released
    }
}

批量处理多个文件

遍历目录,使用 Redactor 打开每个文件,并应用相同的策略:

// Batch processing code placeholder
File inputFile = new File("YOUR_DOCUMENT_DIRECTORY/input.docx");

使用栅格化选项保存处理后的文档

为输入文件初始化 Redactor

打开目标文件进行编辑:

// Open file code placeholder
try (Redactor redactor = new Redactor(inputFile.getPath())) {
    try (FileOutputStream fileStream = new FileOutputStream(outputFileDirectory.getPath() + "/processed_output.docx")) {
        RasterizationOptions options = new RasterizationOptions();
        options.setEnabled(false);  // Example option to disable rasterization
        redactor.save(fileStream, options);
    }
}

使用栅格化选项保存

配置 RasterizationOptions 以保持原始格式或将页面转换为图像,然后保存:

// Save options code placeholder

关键选项

  • setEnabled(false) – 保持原始文件类型。
  • setResolution(150) – 在栅格化为图像时设置 DPI 为 150。

如何在不丢失格式的情况下保存编辑后的文档?

在调用 save 之前将栅格化标志设置为 false。这会指示 GroupDocs.Redaction 将输出写入与源相同的格式,确保表格、字体和布局保持不变,同时仍然应用所需的编辑。

实际应用

  1. 法律文档处理 – 在共享草稿之前编辑客户标识符。
  2. 医疗数据管理 – 删除患者详细信息以符合 HIPAA 要求。
  3. 财务报告 – 在分发报告时隐藏账号。
  4. 合同审查 – 在谈判期间保护专有条款。
  5. 电子邮件归档 – 在存储企业电子邮件归档时确保隐私合规。

性能考虑因素

  • 资源管理 – 始终关闭 Redactor 以释放内存。
  • 批量处理 – 将文件分批(10‑20 个)处理,以平衡速度和内存使用。
  • 优化策略 – 将模式限制在所需范围内;更宽泛的模式会增加处理时间。

常见陷阱与故障排除

  • 缺少许可证异常 – 验证许可证文件路径是否正确且文件可读。
  • 不支持的文件类型 – 检查支持的格式列表;不支持的文件会抛出 UnsupportedFormatException。
  • 大 PDF 的内存溢出错误 – 增加 JVM 堆内存 (-Xmx2g) 或在编辑前将 PDF 拆分为更小的块。

常见问题

Q: 我如何使用单个命令处理多个文件?
A: 使用“将策略应用于文档”示例中展示的目录遍历循环;它会自动编辑指定文件夹中的每个文件。

Q: “编辑敏感数据” 实际上会删除什么?
A: 该策略可以针对纯文本模式、图像或元数据,根据您的配置将其替换为黑框或完全删除。

Q: 是否有办法在应用编辑策略前预览?
A: 有——调用 redactor.preview(policy)(如果支持)可生成预览 PDF,准确显示将被隐藏的内容。

Q: 我如何在不丢失原始格式的情况下保存编辑后的文档?
A: 如示例所示,将 RasterizationOptions.setEnabled(false) 设置为 false;这会在保持文件原生格式的同时仍然应用编辑。

Q: 开发测试是否需要许可证?
A: 临时或试用许可证足以用于开发;生产部署需要完整许可证。

资源

结论

通过遵循本指南,您可以使用 GroupDocs.Redaction 强大的策略引擎和批处理功能,安全地在大规模 Java 文档中 编辑敏感数据。根据合规要求调整策略,调优栅格化设置以提升性能,并将工作流集成到任何基于 Java 的后端服务中。


最后更新: 2026-08-31
测试环境: GroupDocs.Redaction 24.9 for Java
作者: GroupDocs

相关教程