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

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

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

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

Вы можете загрузить DLL или MSI установщик из раздела загрузок или установить API в своем приложении .NET через NuGet.

PM> Install-Package GroupDocs.Redaction

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

Поиск и замена слов или фраз в документе Word с помощью C#

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

  • Загрузите документ Word (DOC/DOCX) с помощью класса Redactor.
  • Найдите точную фразу или слово, используя класс ExactPhraseRedaction с ReplacementOptions.
  • Используйте Apply метод Redactor, чтобы применить редактирование.
  • Сохраните изменения, используя метод Сохранить.

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

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

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

Поиск и замена с учетом регистра в файлах Word с использованием C#

Точно так же вы можете выполнить редактирование документа Word с учетом регистра, найдя точное слово и заменив его любым другим. Следующий код заменяет существующее слово «John Doe» в файле DOCX с помощью C#, но на этот раз поиск будет учитывать регистр.

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

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

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

Чтобы найти и заменить любой образец текста в файлах Word (DOC, DOCX), вы можете использовать регулярные выражения. Следующие шаги позволяют редактировать документ Word с помощью RegEx с помощью C#.

  • Загрузите документ Word с помощью класса Redactor.
  • Найдите соответствие регулярному выражению с помощью класса RegexRedaction с ReplacementOptions.
  • Используйте метод Apply, чтобы заменить все тексты соответствия регулярным выражениям.
  • Используйте метод Сохранить, чтобы получить отредактированный файл Word.

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

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

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

Скрыть конфиденциальный текст в документах Word с помощью цветного поля с помощью C#

Если вы не хотите заменять свой личный контент, а просто хотите скрыть его, API позволяет вам скрыть этот контент, нарисовав над ним рамку. Следующий код помещает черный прямоугольник поверх предполагаемого текста, чтобы затемнить текст с помощью C#.

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

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

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

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

Вывод

В заключение вы узнали, как находить текст в файлах Word (DOC, DOCX) с использованием различных методов и заменять результаты разными способами. Точнее, мы обсудили, как найти текст, слово или фразу, даже если это поиск с учетом регистра или использование регулярного выражения в C#. Позже мы заменили результаты поиска другим текстом или поместили цветной прямоугольник поверх искомого текста.

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

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