Шаблони широко використовуються для створення персоналізованих документів шляхом заміни ключів шаблону відповідними значеннями. У цій статті описано, як знайти та замінити текст і слова в документах PDF у Java. Окремо розглянемо, як виконувати пошук слів і фраз, пошук слів з урахуванням регістру, заміну знайденого тексту регулярними виразами. Нарешті, ми дізнаємося, як приховати шукану частину тексту за допомогою Java.

Нижче будуть розглянуті такі теми:

API редагування Java для заміни тексту

GroupDocs надає Java API для застосування різних типів редагування. Це дозволяє редагувати, приховувати або видаляти вміст і навіть метадані документів, презентацій, електронних таблиць, PDF-файлів і зображень у програмі. Щоб отримати додаткові відомості про API, відвідайте документацію.

Завантажити або налаштувати

Ви можете завантажити файл 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>

Однією з хороших речей є те, що немає необхідності встановлювати будь-який редактор PDF або будь-яке інше стороннє програмне забезпечення для редагування PDF. Нижче наведено вміст документа PDF, який використовується в наведених нижче прикладах для редагування. Такий самий підхід працюватиме для інших форматів документів, майже не відрізняючись у вихідному коді.

Знайдіть і замініть слово або фразу в PDF на Java

Ви можете використовувати цю функцію, щоб приховати будь-які особисті дані, а також створити новий налаштований документ із будь-якого шаблону. Наступний крок пояснює, як знайти будь-яке слово/фразу в PDF-документі та замінити його іншим текстом у програмі Java.

  • Завантажте PDF-файл за допомогою класу Redactor.
  • Знайдіть точну фразу чи слово за допомогою ExactPhraseRedaction і [ReplacementOptions](https://apireference.groupdocs. com/redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Застосуйте редагування за допомогою методу apply().
  • Збережіть новий документ зі змінами за допомогою методу save().

Наступний код знаходить і замінює слова у файлі PDF за допомогою Java. Точніше, він приховує всі повторення слова “Джон Доу”, замінюючи його словом “[censored]”.

// Знайдіть точну фразу в PDF і замініть її іншим текстом за допомогою Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Збережіть відредагований файл в іншому місці з іншою назвою.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.pdf");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

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

Знайдіть і замініть текст або фразу з урахуванням регістру в PDF за допомогою Java

Ви можете виконати пошук і редагування з урахуванням регістру. Наступний код замінює чутливе до регістру слово “John Doe”, але не “john doe” у документі PDF за допомогою Java.

// Знайдіть точну фразу в PDF (з урахуванням регістру) і замініть її іншим текстом за допомогою Java
final Redactor redactor  = new Redactor("path/document.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

Вихід коду виглядає наступним чином.

Замініть текст у PDF на регулярні вирази (RegEx) у Java

Так само ви можете замінити будь-який конкретний текстовий шаблон за допомогою регулярних виразів. Наступні кроки дозволяють редагувати PDF після пошуку за допомогою регулярного виразу (RegEx) у ваших програмах Java.

  • Завантажте PDF-документ за допомогою класу Redactor.
  • Знайдіть збіг регулярного виразу за допомогою класу RegexRedaction із [ReplacementOptions](https://apireference.groupdocs.com/ redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Застосуйте зміни до документа за допомогою методу apply().
  • Збережіть відредагований документ за допомогою відповідного методу save().

У наведеному нижче коді Java показано, як знайти певний текстовий шаблон у PDF-документі за допомогою RegEx і пізніше замінити/сховати його іншим текстом.

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

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

Замініть текст кольоровим полем у Java

Якщо ви просто хочете приховати шукану конфіденційну інформацію у своєму PDF-файлі, ви можете просто накрити його обкладинкою. API дозволяє приховати шуканий текст. Наступний код розміщує чорний прямокутник над згаданим приватним текстом у Java.

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

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

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

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

Висновок

Підсумовуючи, ми навчилися знаходити певний текст у PDF-файлах за допомогою різних методів пошуку. Пізніше ми відредагували PDF-файли, замінивши або приховавши текст у програмах Java. Точніше, ми здійснили простий пошук слів, фраз, шукали з урахуванням регістру та за допомогою RegEx у Java. Нарешті, ми змінили результати пошуку або іншим текстом, або просто приховавши його кольором.

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

Дивись також