Шаблоны широко используются для создания настраиваемых документов. В этой статье рассказывается о том, как найти и заменить текст и слова в документах PDF с помощью C#. Отдельно поговорим о программной замене слов и словосочетаний, замене слов с регистрозависимым поиском, замене с помощью регулярных выражений. Наконец, мы также узнаем, как скрыть искомую строку с помощью C#.

Ниже будут рассмотрены следующие темы:

.NET Redaction API для замены текста

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

Вы можете загрузить DLL или MSI установщик из раздела загрузок или установить API в своем приложении .NET через [NuGet](https ://www.nuget.org/packages/groupdocs.redaction).

PM> Install-Package GroupDocs.Redaction

Нет необходимости устанавливать какой-либо редактор PDF или любое другое стороннее программное обеспечение для редактирования. Ниже приведен снимок экрана PDF-документа, который используется в приведенных ниже примерах. Тот же подход будет работать и для других форматов документов, практически без изменений в коде.

Найти и заменить слово или фразу в PDF с помощью C#

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

  • Загрузите файл PDF с помощью класса Redactor.
  • Найдите точную фразу или слово, используя ExactPhraseRedaction и [ReplacementOptions](https://apireference .groupdocs.com/redaction/net/groupdocs.redaction.redactions/replacementoptions).
  • Примените исправление с помощью метода Apply().
  • Сохраните новый документ с изменениями, используя метод Сохранить().

Следующий код находит и заменяет слово в C#. Точнее, он скрывает все вхождения «John Doe», заменяя его словом «[censored]».

// Найдите точную фразу и замените ее другим текстом, используя С#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Вывод кода выглядит следующим образом.

Поиск и замена чувствительного к регистру текста или фразы в PDF с помощью C#

Вы можете выполнять поиск и редактирование с учетом регистра. Следующий код заменяет регистрозависимое существование слова «John Doe», но не «john doe» в C#.

// Найдите точную фразу (с учетом регистра) и замените ее другим текстом, используя С#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Вывод кода выглядит следующим образом.

Замените текст в PDF регулярными выражениями (RegEx) с помощью C#

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

  • Загрузите PDF-документ с помощью класса Redactor.
  • Найдите соответствие регулярному выражению, используя класс RegexRedaction с [ReplacementOptions](https://apireference.groupdocs .com/redaction/net/groupdocs.redaction.redactions/replacementoptions).
  • Внесите изменения в документ с помощью метода Apply().
  • Сохраните отредактированный документ, используя соответствующий метод Save().

В следующем коде показано, как найти определенный текстовый шаблон в документе PDF с помощью RegEx, а затем заменить/скрыть его другим текстом с помощью C#.

// Найдите текст с помощью регулярного выражения и замените его другим текстом с помощью С#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Вывод приведенного выше кода выглядит следующим образом.

Замените текст цветным полем в С#

Если вы просто хотите скрыть искомое содержимое (частную информацию) вашего PDF-файла, вы можете просто наложить на него обложку. API позволяет скрыть искомый текст. Следующий код C# помещает черный прямоугольник поверх упомянутого закрытого текста.

// Найдите текст в PDF и скройте его, нарисовав прямоугольник над ним с помощью С#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Вывод приведенного выше кода выглядит следующим образом.

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию, чтобы использовать API без ограничений пробной версии.

Вывод

В заключение мы узнали, как найти определенный текст в файлах PDF, используя различные методы поиска. Позже мы обсудили, как редактировать PDF-файлы, заменяя или скрывая текст в приложении .NET с помощью C#. Точнее, мы просто искали слова, фразы, поиск с учетом регистра и с помощью регулярных выражений в C#. Наконец, мы заменили результаты поиска другим текстом или скрыли его прямоугольной рамкой.

Дополнительные сведения об API см. в документации. По вопросам обращайтесь к нам через форум.

Смотрите также