В различных случаях вам может понадобиться найти и заменить определенный фрагмент текста в документах PDF. Однако поиск и обновление каждого экземпляра вручную может потребовать дополнительного времени и усилий. В таких случаях опция «найти и заменить» облегчит вам жизнь. В этой статье вы узнаете, как находить и заменять текст в документах PDF с помощью Java.
- Java API для поиска и замены текста в PDF
- Найти и заменить текст в PDF с помощью Java
- Заменить текст на определенной странице в PDF
- Заменить текст с помощью регулярного выражения
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 с помощью класса Document.
- Создайте объект класса TextFragmentAbsorber и инициализируйте его текстом, который вы хотите найти и заменить.
- Примите поглотитель для страниц в PDF, используя метод Document.getPages().accept(TextFragmentAbsorber).
- Получите все вхождения текста, возвращенного TextFragmentAbsorber.getTextFragments(), в объект TextFragmentCollection.
- Переберите каждый TextFragment в объекте TextFragmentCollection и замените текст с помощью метода TextFragment.setText(String).
- Сохраните обновленный файл PDF с помощью метода Document.save(String).
В следующем примере кода показано, как найти и заменить текст в 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 с помощью класса Document.
- Создайте объект класса TextFragmentAbsorber и инициализируйте его текстом, который вы хотите найти и заменить.
- Примите поглотитель для определенной страницы в PDF, используя метод Document.getPages().get_Item(Int pageIndex).accept(TextFragmentAbsorber).
- Получите все вхождения текста, возвращенного TextFragmentAbsorber.getTextFragments(), в объект TextFragmentCollection.
- Переберите каждый TextFragment в объекте TextFragmentCollection и замените текст с помощью метода TextFragment.setText(String).
- Сохраните обновленный файл PDF с помощью метода Document.save(String).
В следующем примере кода показано, как найти и заменить текст на определенной странице в 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 с помощью класса Document.
- Создайте объект класса TextFragmentAbsorber и инициализируйте его регулярным выражением, которое вы хотите использовать.
- Создайте объект класса TextSearchOptions и инициализируйте его значением true, чтобы включить поиск на основе регулярных выражений.
- Установите параметры, используя метод TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions).
- Примите поглотитель для страниц в PDF, используя метод Document.getPages().accept(TextFragmentAbsorber).
- Получить все найденные вхождения текста, возвращенного TextFragmentAbsorber.getTextFragments(), в объект TextFragmentCollection.
- Переберите каждый TextFragment в объекте TextFragmentCollection и замените текст с помощью метода TextFragment.setText(String).
- Сохраните обновленный файл PDF с помощью метода Document.save(String).
В следующем примере кода показано, как найти и заменить текст в 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, используя документацию.