在商业文档中替换文本是一项常见任务。本文解释了 如何使用 AI 和 C# 查找并替换 PDF 文档中的内容。您将了解到如何应用自定义删减并集成 AI 以修改 PDF 内容。
本文涵盖以下主题:
GroupDocs.Redaction 替换文本的功能
GroupDocs.Redaction 允许您在各种支持的文件格式中替换文本。此方法依赖于正则表达式来识别需要替换的文本。然而,使用正则表达式在更复杂的情况下可能需要额外的努力。有关更多信息,请参阅我们的 documentation。
使用 AI 工具通过 C# 删除 PDF 的步骤
您可以使用此功能隐藏敏感信息或从模板生成自定义文档。以下步骤展示了如何在 .NET 应用程序中使用 AI 来替换 PDF 文档中的特定文本。
- 加载 PDF 文件,使用 Redactor 类。
- 提供自定义删减处理程序,通过实现您的 AI 逻辑来使用 ICustomRedactionHandler 接口。
- 处理文档文本,使用 PageAreaRedaction 以及 ReplacementOptions。
- 应用删减,使用 Apply() 方法。
- 保存 处理后的文档到新位置,使用 Save() 方法。
使用 GroupDocs.Redaction 功能的通用 C# 代码
以下代码使用 AI 查找并替换文档中的信用卡号码。此代码片段包括主方法,该方法初始化 Redactor 并通过调用 Apply() 方法应用删减。
public async Task Redaction_Custom_AI()
{
// 通常,此正则表达式用于查找要替换的文本
// 为提供所有可能的自定义删减文本,请使用像示例中的正则表达式
Regex regex = new Regex(".*");
// 定义目标页面和删减的替换文本
ReplacementOptions optionsText = new ReplacementOptions("[replaced]");
optionsText.Filters = new RedactionFilter[] {
new PageRangeFilter(PageSeekOrigin.Begin, 0, 2)
};
// 提供自定义删减处理程序实现
optionsText.CustomRedaction = new TextRedactor() { Test = this };
var textRedaction = new PageAreaRedaction(regex, optionsText);
var redactions = new Redaction[] { textRedaction };
// 处理文档
using (var redactor = new Redactor("source.pdf"))
{
// 对文档应用删减
RedactorChangeLog result = redactor.Apply(redactions);
if (result.Status != RedactionStatus.Failed)
{
redactor.Save(new GroupDocs.Redaction.Options.SaveOptions(false, "Result"));
}
}
}
自定义删减 C# 代码
ICustomRedactionHandler 实现允许用户定义自己在 PDF 文件中删减文本段落的逻辑。使用此类可以实现针对特定业务需求的灵活算法。
public class TextRedactor : ICustomRedactionHandler
{
public Redaction_Custom Test { get; set; }
public CustomRedactionResult Redact(CustomRedactionContext context)
{
CustomRedactionResult result = new CustomRedactionResult();
if (!String.IsNullOrEmpty(context.Text))
{
var response = Process_AI(context.Text, "[redacted-custom]").GetAwaiter().GetResult();
if (response.Result != "none")
{
result.Apply = true;
result.Text = response.Result;
}
}
return result;
}
}
AI 提示示例
最后一部分是 AI 集成代码。所提供的提示相当复杂,因为并非所有 AI 工具都能处理敏感数据,例如信用卡号码。
public async Task<OpenAIResult> Process_AI(string text, string replacement)
{
string prompt =
"嘿,我这里有一份文档。 " +
"你能帮我替换掉任何看起来像数字块的部分,比如 'XXXX-' 吗? " +
"这些块只是数字和连字符。 " +
"我想替换的每一条可能有一到四个这样的块。 " +
$"请在文本中将整个块替换为 '{replacement}'。 " +
"我不需要你的任何评论。 " +
"只需返回替换了条目的文本或如果没有东西要替换只需返回 'none' " +
$"这是需要处理的文本 \n\n {text}";
// 用户 AI 集成代码,具体取决于所使用的 AI 工具
return await RequestToAI(prompt);
}
上述代码的输出如下所示:
结论
在本文中,我们学习了如何使用自定义删减和 AI 集成来处理 PDF 文件。AI 工具可以大大简化文本处理,但与常规工具相比,可能需要更多时间且不太可预测。
有关我们产品的更多信息,请访问 documentation。如果您有任何疑问,请随时通过 forum 与我们联系。
试用我们的免费网络应用程序
通过我们的 online web application 探索 GroupDocs.Redaction 的功能。在您的浏览器中直接测试核心功能,无需安装任何东西。