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.

GitHub

Статистика GitHub

Ім'я:
Мова:
зірки:
Вилки:
Ліцензія:
Репозиторій востаннє оновлено о

Чому варто обрати 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:

Apache 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.

Подібні Продукти

 Ukrainian