Знайти та замінити текст у PDF Java

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

Бібліотека Java для пошуку та заміни тексту в PDF

Щоб знайти та замінити текст у PDF, ми будемо використовувати Aspose.PDF for Java. Він призначений для генерування та обробки PDF-файлів із програм Java. Бібліотека надає широкий спектр основних і розширених функцій роботи з PDF-файлами, включаючи пошук і заміну тексту.

Ви можете завантажити бібліотеку або встановити її за допомогою наведених нижче конфігурацій 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>22.12</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");

Java Знайти та замінити текст у PDF за допомогою Regex

Ви також можете вказати регулярний вираз для пошуку тексту, який відповідає певному шаблону, наприклад електронних листів, номерів соціального страхування тощо. Нижче наведено кроки для визначення та використання регулярного виразу для пошуку та заміни тексту в 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");

Безкоштовна бібліотека Java для заміни тексту в PDF

Ви можете отримати безкоштовну тимчасову ліцензію і знаходити та замінювати текст у PDF без будь-яких обмежень.

Дослідіть бібліотеку Java PDF

Ви можете дізнатися більше про бібліотеку Java PDF за допомогою документації.

Висновок

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

Дивись також