想要保护文档中的秘密或敏感信息?即使这是常规的文本信息,或者是带有图像的扫描文档的文本,它也是可行的。之前的文章可能会帮助您优化搜索,我们在其中讨论了搜索单词的不同策略 和 在多个文档中搜索同义词。本文将指导您了解如何使用 Java 编辑 PDF 文本和文档中图像中的文本。
下面将介绍以下主题:
用于文本和图像编辑的 Java API
GroupDocs.Redaction 提供了保护机密信息的编辑解决方案。它的 Java API 允许您从基于 Java 的应用程序中编辑或删除各种文件格式的文档中的机密信息。除了简单的文本编辑和光栅化之外,API 还允许识别图像中的文本,这些文本可能已经在任何文档中,例如最常用的扫描 PDF 文件。文档中提供了 支持的文件格式 的完整列表。
下载或配置
您可以从 下载部分 下载 JAR 文件,或者仅获取 基于 maven 的 Java 应用程序的 pom.xml 的最新存储库和依赖项配置。
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-redaction</artifactId>
<version>21.6</version>
</dependency>
使用 Java 编辑 PDF 文本和扫描的图像文本
我们已经讨论了不同的在文档中查找和替换文本的方法。但是,我们也可以编辑图像中的文本。我将使用以下 PDF 文档,其中包含一些文本以及带有一些文本的图像。为此,我们需要将 OCR 与编辑过程结合起来。首先,我们将识别文档中的文本以及文档图像中的文本。然后,我们将用黑框覆盖它,以编程方式隐藏任何法律、机密或秘密信息,即使是扫描文档图像中的文本。
以下步骤将检测并替换 PDF 文档中包含常规文本或嵌入图像中的任何文本的文本。
- 使用任何 OCR 连接器准备编辑器设置。
- 使用 Redactor 类以及是否需要任何特定的加载选项来加载您的 PDF 文件。
- 定义您的 替换选项。我选择将文本涂黑。
- 准备编辑;使用适当的编辑策略,如 Phrase Redaction 或 RegEx redaction。
- 使用 apply 方法应用编辑。
- 使用 save 方法保存编辑过的文档。
以下源代码使用 Java 编辑 PDF 文档中的选定文本。
// 使用 Java 编辑 PDF 中的文本和图像中的文本,如扫描文档
RedactorSettings settings = new RedactorSettings(new AsposeCloudOcrConnector());
try (Redactor redactor = new Redactor("path/document.pdf", new LoadOptions(), settings))
{
ReplacementOptions marker = new ReplacementOptions(java.awt.Color.BLACK);
Redaction redactions[] = new Redaction[] {
new RegexRedaction("(?<=Dear\\s)([^,]+)", marker), // cardholder name
new RegexRedaction("\\d{2}/\\d{2}", marker), // valid thru
new RegexRedaction("\\d{4}", marker) // card number parts
};
RedactorChangeLog result = redactor.apply(redactions);
if (result.getStatus() != RedactionStatus.Failed)
{
redactor.save(new SaveOptions(false, "redacted"));
}
}
上述代码的输出如下所示,其中 PDF 文档的选定文本被涂黑。
获取免费 API 许可证
您可以 获得免费的临时许可证 使用 API 而不受评估限制。
结论
最后,您已经学会了如何编辑文档中的文本。此外,我们还讨论了如何使用 Java 编辑 PDF 文档中图像中的文本。同样,您可以使用任何其他格式的文档编辑文本和图像。我们使用了正则表达式编辑,但是,它也可以使用许多不同的方式来完成。后来我们用黑匣子隐藏了搜索结果。
如需了解有关 API 的更多详细信息,请访问 文档。如有疑问,请通过 论坛 联系我们。