Замена текста в деловых документах - это распространенная задача. Эта статья объясняет как находить и заменять содержимое в PDF документах с использованием ИИ и C#. Вы узнаете, как применять пользовательские редактирования и интегрировать ИИ для изменения содержимого PDF.

В этой статье рассматриваются следующие темы:

Функция GroupDocs.Redaction для замены текста

GroupDocs.Redaction позволяет замещать текст в различных поддерживаемых форматах файлов. Этот метод основан на регулярных выражениях для идентификации текста, который необходимо заменить. Однако работа с регулярными выражениями может требовать дополнительных усилий, особенно в более сложных ситуациях. Для получения дополнительной информации см. нашу документацию.

Шаги для редактирования PDF с использованием инструментов ИИ через C#

Вы можете использовать эту функцию для скрытия конфиденциальной информации или для создания кастомизированного документа из шаблона. Следующие шаги демонстрируют, как использовать ИИ для замены конкретного текста в PDF документе в рамках приложения .NET.

  • Загрузите PDF файл, используя класс Redactor.
  • Предоставьте пользовательский обработчик редактирования, реализовав вашу логику ИИ через интерфейс ICustomRedactionHandler.
  • Обработайте текст документа, используя PageAreaRedaction в сочетании с ReplacementOptions.
  • Примените редактирование, используя метод Apply().
  • Сохраните обработанный документ в новое место, используя метод Save().

Общий код C# для использования функциональности GroupDocs.Redaction

Следующий код использует ИИ для нахождения и замены номеров кредитных карт в документе. Этот фрагмент кода включает основной метод, который инициализирует 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;
    }
}

Пример запроса для ИИ

Финальная часть - это код интеграции ИИ. Предоставленный запрос довольно сложный, так как не все инструменты ИИ могут обрабатывать конфиденциальные данные, такие как номера кредитных карт.

public async Task<OpenAIResult> Process_AI(string text, string replacement)
{
    string prompt =
        "Привет, у меня есть часть документа. " +
        "Не мог бы ты помочь мне заменить любые части, которые выглядят как цифровые блоки, такие как 'XXXX-'? " +
        "Эти блоки - просто цифры и дефисы. " +
        "Каждый элемент, который я хочу заменить, может содержать от одного до четырех таких блоков. " +
        $"Пожалуйста, замените весь блок на '{replacement}' в тексте. " +
        "Мне не нужны твои комментарии. " +
        "Верните в качестве результата только текст с замененными элементами или просто слово 'none', если ничего не нужно заменять. " +
        $"Вот текст, с которым нужно работать \n\n {text}";

    // Код интеграции ИИ, который зависит от используемого инструмента ИИ
    return await RequestToAI(prompt);
}

Результат кода выше выглядит следующим образом:

Заключение

В этой статье мы узнали, как использовать пользовательские редактирования и интеграции ИИ для обработки PDF. Инструменты ИИ могут значительно упростить обработку текста, но могут занять больше времени и быть менее прогнозируемыми по сравнению с обычными инструментами.

Для получения дополнительной информации о нашем продукте посетите документацию. Если у вас есть какие-либо вопросы, не стесняйтесь обращаться к нам через форум.

Попробуйте наше бесплатное веб-приложение

Изучите возможности GroupDocs.Redaction, используя наше онлайн веб-приложение. Протестируйте основные функции прямо в вашем браузере, не устанавливая ничего.

Также посмотрите