В одной из статей мы уже обсуждали как редактировать слова в документах в качестве .NET-разработчика. Эта стратегия используется многими способами для удаления конфиденциального контента, сокрытия или удаления личной информации, такой как адреса электронной почты или идентификационные номера. В этой статье обсуждается, как выполнять поиск слов в документах Word DOC/DOCX на Java. Мы отдельно обсудим, как найти и заменить текст, слова или фразы с помощью различных методов, используя Java API для редактирования.

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

Java API для поиска слов и замены текста

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

Скачать или настроить

Вы можете загрузить JAR-файл из раздела загрузок или просто получить последний репозиторий и конфигурации зависимостей для pom.xml ваших Java-приложений на основе maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-redaction</artifactId>
        <version>21.12</version> 
</dependency>

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

Документ для редактирования текста

Поиск и замена слов или фраз с помощью Java

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

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

Следующий код находит и заменяет слово «Джон Доу» в приведенном выше документе Word с помощью Java. Он заменяет все вхождения «John Doe» словом «[censored]».

// Найдите точную фразу и замените ее другим текстом с помощью Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Если вы хотите сохранить отредактированный файл в другом месте с другим именем.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

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

Редактировать, используя точную фразу

Поиск слов с учетом регистра и замена текста в Java

Вы, кажется, осторожны в отношении точного регистра букв слова и хотите заменить только слово, которое соответствует только вашему поиску с учетом регистра. Следующий код заменяет наличие точного совпадения регистра слова «Джон Доу» в Java.

// Найдите точную фразу (с учетом регистра) и замените ее другим текстом с помощью Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

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

Редактирование с учетом регистра

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

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

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

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

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

Ниже приведен вывод приведенного выше кода:

Редактирование регулярных выражений

Заменить текст цветным полем в Java

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

// Найдите текст и скройте его, нарисовав прямоугольник над ним с помощью Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

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

Скрыть текст с помощью поля

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

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

Заключение

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

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

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