Причин для замены слова или фразы в документе может быть много. Если вы хотите стереть конфиденциальное содержимое перед публикацией документа или хотите скрыть/удалить всю личную информацию, такую как идентификаторы электронной почты или номера социального страхования, вам необходимо отредактировать содержимое документа. В этой статье рассказывается, как программно редактировать документы Word в приложениях .NET с помощью C#. Мы отдельно обсудим, как отредактировать, скрыв текст, и как найти и заменить текст, слова или фразы с помощью различных техник.
Ниже будут рассмотрены следующие темы:
- .NET API для замены текста
- Найти и заменить слова или фразы
- Регистрозависимый поиск и замена слов или фраз
- Заменить текст с помощью регулярных выражений (RegEx)
- Скрыть текст с помощью цветного поля
.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, посетите документацию. По вопросам обращайтесь к нам через форум.