В одній із статей ми вже обговорювали як редагувати слова в документах як розробник .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.
  • Використовуйте метод застосування Redactor, щоб застосувати редагування.
  • Щоб зберегти файл в іншому місці після внесення змін, використовуйте вихідний потік.
  • Збережіть редаговані зміни за допомогою методу збереження.

Наступний код знаходить і замінює слово “John Doe” у наведеному вище документі 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 з урахуванням регістру

Здається, ви обережні щодо точного регістру слова та хочете замінити лише те слово, яке відповідає вашому пошуку з урахуванням регістру. Наступний код замінює існування точного регістру слова «John Doe» у 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.

  • Завантажте документ за допомогою класу Redactor.
  • Створіть RegEx за допомогою RegexRedaction.
  • Надайте текст за допомогою ReplacementOptions, щоб замінити відповідність RegEx.
  • Використовуйте метод apply, щоб замінити всі збіги регулярного виразу.
  • Використовуйте метод збереження, щоб отримати відредагований документ.

У наступному коді показано, як виконати пошук слова у файлі 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();

Результат наведеного вище коду виглядає наступним чином.

Приховати текст за допомогою Box

Отримайте безкоштовну ліцензію API

Ви можете отримати безкоштовну тимчасову ліцензію, щоб використовувати API без оціночних обмежень.

Висновок

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

Щоб дізнатися більше та дізнатися про API, відвідайте документацію. Якщо у вас виникли запитання, зв’яжіться з нами через форум.

Дивись також