Замена текста в деловых документах - это распространенная задача. Эта статья объясняет как находить и заменять содержимое в PDF документах с использованием ИИ и C#. Вы узнаете, как применять пользовательские редактирования и интегрировать ИИ для изменения содержимого PDF.
В этой статье рассматриваются следующие темы:
- Обычный способ замены текста
- Шаги для редактирования PDF с использованием инструментов ИИ через C#
- Общий код C# для использования функциональности GroupDocs.Redaction
- Код пользовательского редактирования на C#
- Пример запроса для ИИ
Функция 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, используя наше онлайн веб-приложение. Протестируйте основные функции прямо в вашем браузере, не устанавливая ничего.