Найти и заменить текст в PDF Java

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

Java API для поиска и замены текста в PDF — скачать бесплатно

Aspose.PDF for Java предназначен для создания файлов PDF и управления ими из приложений Java. API предоставляет широкий спектр основных, а также расширенных функций работы с PDF, включая поиск и замену текста. Вы можете либо скачать API, либо установить его, используя следующие конфигурации Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.1</version>    
</dependency>

Найти и заменить текст в PDF с помощью Java

Чтобы заменить конкретный текст в PDF, вы должны сначала получить все текстовые фрагменты, соответствующие строке поиска. Получив их, просто замените каждый фрагмент обновленным текстом один за другим.

Ниже приведены шаги по поиску и замене текста в файле PDF с помощью Java.

В следующем примере кода показано, как найти и заменить текст в PDF.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.Pdf-for-Java.
// Открыть документ
Document pdfDocument = new Document("source.pdf");

// Создайте объект TextAbsorber, чтобы найти все экземпляры входной поисковой фразы.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Принять абсорбер для всех страниц документа
pdfDocument.getPages().accept(textFragmentAbsorber);

// Получить извлеченные текстовые фрагменты в коллекцию
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Перебрать фрагменты
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Обновление текста и других свойств
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Сохраните обновленный файл PDF
pdfDocument.save("Updated_Text.pdf");

Поиск и замена текста на определенной странице в PDF

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

Ниже приведены шаги для поиска и замены текста на определенной странице в PDF на Java.

В следующем примере кода показано, как найти и заменить текст на определенной странице в PDF с помощью Java.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.Pdf-for-Java.
// Открыть документ
Document pdfDocument = new Document("source.pdf");

// Создайте объект TextAbsorber, чтобы найти все экземпляры входной поисковой фразы.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Принять поглотитель для первой страницы документа
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);

// Получить извлеченные текстовые фрагменты в коллекцию
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Перебрать фрагменты
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Обновление текста и других свойств
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Сохраните обновленный файл PDF
pdfDocument.save("Updated_Text.pdf");

Поиск и замена текста с помощью регулярных выражений в PDF

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

В следующем примере кода показано, как найти и заменить текст в PDF с помощью регулярного выражения.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.Pdf-for-Java.
// Открыть документ
Document pdfDocument = new Document("input.pdf");

// Создайте объект TextAbsorber, чтобы найти все экземпляры входной поисковой фразы.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000

// Установите параметр текстового поиска, чтобы включить использование регулярных выражений
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);

// Принять абсорбер для всех страниц документа
pdfDocument.getPages().accept(textFragmentAbsorber);

// Получить извлеченные текстовые фрагменты в коллекцию
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Перебрать фрагменты
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Обновление текста и других свойств
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}

// Сохраните обновленный файл PDF
pdfDocument.save("Updated_Text.pdf");

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

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

Вывод

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

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