У різних випадках вам може знадобитися знайти та замінити певний фрагмент тексту в документах PDF. Однак пошук і оновлення кожного входження вручну може коштувати додаткового часу та зусиль. Для таких випадків опція «Знайти та замінити» полегшує ваше життя. У цій статті ви дізнаєтесь, як знаходити та замінювати текст у документах PDF за допомогою Java.
- Бібліотека Java для пошуку та заміни тексту в PDF
- Знайдіть і замініть текст у PDF за допомогою Java
- Заміна тексту на певній сторінці в PDF
- Замінити текст за допомогою регулярного виразу
Бібліотека 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-файл за допомогою класу 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().getItem(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");
Java Знайти та замінити текст у PDF за допомогою Regex
Ви також можете вказати регулярний вираз для пошуку тексту, який відповідає певному шаблону, наприклад електронних листів, номерів соціального страхування тощо. Нижче наведено кроки для визначення та використання регулярного виразу для пошуку та заміни тексту в 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");
Безкоштовна бібліотека Java для заміни тексту в PDF
Ви можете отримати безкоштовну тимчасову ліцензію і знаходити та замінювати текст у PDF без будь-яких обмежень.
Дослідіть бібліотеку Java PDF
Ви можете дізнатися більше про бібліотеку Java PDF за допомогою документації.
Висновок
У цій статті ви дізналися, як знаходити та замінювати текст у PDF за допомогою Java. Крім того, ви побачили, як використовувати регулярний вираз для пошуку та заміни тексту за певним зразком.