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