Apache PDFBox: Повний набір інструментів для роботи з PDF у Java
Вилучення тексту, маніпулювання документами, заповнення форм та інше – повністю на Java
Що таке Apache PDFBox?
Apache PDFBox – це потужна бібліотека з відкритим кодом, розроблена для обробки PDF у Java. Вона дозволяє розробникам програмно створювати, редагувати та вилучати вміст з PDF-документів. Як одна з найпопулярніших бібліотек для роботи з PDF у Java, PDFBox відмінно підходить для таких завдань, як вилучення тексту з PDF, об'єднання кількох PDF-файлів та додавання цифрових підписів – все це з легким API та без ліцензійних витрат. Чи вам потрібен аналіз PDF у Java, створення PDF або відповідність стандарту PDF/A – ця бібліотека підтримує такі розширені функції, як інтеграція OCR, заповнення форм і перетворення HTML у PDF. Завдяки підтримці Maven (наприклад, pdfbox-maven) та детальній документації PDFBox спрощує складні процеси, що робить її ідеальною для корпоративних додатків, автоматизації документів та вилучення даних. Порівняно з альтернативами, такими як iText, Apache PDFBox вирізняється своєю гнучкістю як відкритий проект, активною спільнотою та крос-платформеністю. Ознайомтеся з нашим посібником з PDFBox, щоб дослідити приклади коду на Java та розкрити весь потенціал маніпулювання PDF у Java.
Ключові переваги PDFBox:
- Повне рішення: Можливості як для вилучення, так і для створення
- Чистий Java: Відсутність залежностей від нативних бібліотек
- Активний розвиток: Підтримується Apache Software Foundation
- Розширені функції: Вилучення тексту, розділення, об'єднання, підписування
- Підтримка форм: Читання та заповнення PDF-форм
Ідеально підходить для систем управління документами, вилучення контенту та автоматизації PDF.
Чому варто обрати PDFBox?
- Зрілість: Стабільна з 2002 року з регулярними оновленнями
- Універсальність: Можливості як для читання, так і для запису
- Підтримка стандартів: Працює з PDF 1.7 та PDF/A
- Спільнота: Велика база користувачів та детальна документація
- Інтеграція: Сумісна з усіма Java-фреймворками
Встановлення
PDFBox доступний через Maven Central для легкої інтеграції:
Maven
org.apache.pdfbox
pdfbox
3.0.0
Gradle
implementation 'org.apache.pdfbox:pdfbox:3.0.0'
Системні вимоги: Java 8 або новішої версії
Приклади коду
Практичні приклади можливостей PDFBox:
Приклад 1: Базове вилучення тексту з PDF-документа на Java
Цей приклад демонструє, як вилучити текст з PDF-документа зі збереженням форматування та структури. PDFBox надає розширені можливості вилучення тексту, які зберігають порядок читання та обробляють складні макети.
Результат включає:
- Структурований текстовий вміст
- Вилучення за сторінками
- Збереження базового форматування
Приклад 2: Створення PDF-документа з нуля на Java
PDFBox відмінно підходить як для читання, так і для створення PDF. Цей приклад демонструє створення нового PDF-документа з текстом та базовим форматуванням.
Приклад 3: Додавання верхніх та нижніх колонтитулів до сторінок PDF на Java
PDFBox надає повну підтримку для додавання верхніх і нижніх колонтитулів до сторінок PDF з вашого Java-додатка. Наведений нижче приклад коду показує, як це зробити за допомогою PDFBox API для Java.
Розширені функції
PDFBox підтримує професійну обробку PDF:
- Вилучення зображень: Доступ до вбудованих зображень:
Вилучення зображень
PDDocument document = PDDocument.load(new File("document.pdf")); for (PDPage page : document.getPages()) { PDResources resources = page.getResources(); for (COSName name : resources.getXObjectNames()) { PDXObject xobject = resources.getXObject(name); if (xobject instanceof PDImageXObject) { BufferedImage image = ((PDImageXObject) xobject).getImage(); // Обробка зображення } } }
- Розділення документів: Поділ PDF на кілька файлів:
Розділення PDF
Splitter splitter = new Splitter(); List
pages = splitter.split(document); for (int i = 0; i < pages.size(); i++) { pages.get(i).save("сторінка-" + (i+1) + ".pdf"); } - Зашифровані PDF: Робота з захищеними паролем файлами:
Зашифрований PDF
String password = "secure123"; FileInputStream fis = new FileInputStream("encrypted.pdf"); PDDocument doc = PDDocument.load(fis, password);
PDFBox vs iText
Основні відмінності між PDFBox та iText:
- Ліцензія: PDFBox має ліцензію Apache (відкритий код), тоді як iText вимагає комерційної ліцензії для більшості випадків використання
- Фокус на функціях: PDFBox пропонує збалансовані можливості читання/запису, тоді як iText спеціалізується на створенні PDF
- Продуктивність: iText зазвичай швидший для створення документів, тоді як PDFBox краще справляється з вилученням тексту
- Спільнота: PDFBox має ширше відкрите співтовариство, тоді як iText пропонує професійну підтримку
- Сценарії використання: PDFBox ідеальний для аналізу та базового маніпулювання, тоді як iText краще підходить для масового створення PDF
Висновок
Apache PDFBox надає комплексну обробку PDF для Java-розробників. Ідеально підходить для:
- Вилучення контенту: Отримання тексту та даних з PDF
- Автоматизація документів: Генерація звітів та форм
- Управління документами: Розділення, об'єднання та перетворення PDF
- Обробка форм: Читання та заповнення інтерактивних форм
Завдяки ліцензії з відкритим кодом та розширеному набору функцій, PDFBox є провідним рішенням для обробки PDF у Java.
Подібні Продукти
- Apache POI XWPF | Java API з відкритим кодом для створення та зміни файлів DOCX
- DocX | Open Source .NET API для створення та зміни файлів DOCX
- Docx4J | Java API з відкритим вихідним кодом для створення та зміни файлів DOC і DOCX
- ExcelDataReader | Open Source .NET API для читання документів XLS, XLSX, CSV і електронних таблиць
- FileFormat.Cells | Створення та оновлення файлів Excel за допомогою C# .NET