在商业文档中替换文本是一项常见任务。本文解释了 如何使用 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 的功能。在您的浏览器中直接测试核心功能,无需安装任何东西。

参见