Шаблоны широко используются для создания персонализированных документов путем замены ключей шаблона соответствующими значениями. В этой статье рассказывается о том, как найти и заменить текст и слова в документах PDF на Java. Отдельно мы обсудим, как выполнять поиск по словам и словосочетаниям, поиск слов с учетом регистра, замену найденного текста с помощью регулярных выражений. Наконец, мы узнаем, как скрыть искомую часть текста с помощью Java.

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

Java Redaction API для замены текста

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

Загрузите или настройте

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

<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.
  • Примените исправление с помощью метода apply().
  • Сохраните новый документ с изменениями, используя метод save().

Следующий код находит и заменяет слова в файле PDF с помощью Java. Точнее, он скрывает все вхождения «John Doe», заменяя его словом «[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

Вы можете выполнять поиск и редактирование с учетом регистра. Следующий код заменяет регистрозависимое вхождение слова «Джон Доу», но не «Джон Доу» в документе 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.
  • Применить изменения к документу с помощью метода 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 см. в документации. По вопросам обращайтесь к нам через форум.

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