Apache PDFBox: Полный набор инструментов для работы с PDF в Java

Извлечение текста, обработка документов, заполнение форм и многое другое – всё на чистой Java

Что такое Apache PDFBox?

Apache PDFBox – это мощная библиотека с открытым исходным кодом для работы с PDF в Java, позволяющая разработчикам программно создавать, редактировать и извлекать содержимое из PDF-документов. Как одна из самых популярных Java-библиотек для работы с PDF, 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-приложения. Следующий пример кода показывает, как этого добиться с помощью API PDFBox для 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

Вот 5 ключевых различий между PDFBox и iText:

  • Лицензия: PDFBox имеет лицензию Apache (открытый исходный код), тогда как iText требует коммерческой лицензии для большинства случаев использования
  • Фокус возможностей: PDFBox предлагает сбалансированные функции чтения/записи, тогда как iText специализируется на генерации PDF
  • Производительность: iText обычно быстрее в создании документов, тогда как PDFBox лучше в извлечении текста
  • Сообщество: PDFBox имеет более широкое распространение как открытый исходный код, тогда как iText предлагает профессиональную поддержку
  • Сценарии использования: PDFBox идеален для анализа и базовой обработки, тогда как iText лучше подходит для массовой генерации PDF

Заключение

Apache PDFBox предоставляет комплексную обработку PDF для Java-разработчиков. Идеально подходит для:

  • Извлечения контента: Получение текста и данных из PDF
  • Автоматизации документов: Генерация отчётов и форм
  • Управления документами: Разделение, объединение и преобразование PDF
  • Обработки форм: Чтение и заполнение интерактивных форм

Благодаря открытому исходному коду и обширному набору функций, PDFBox является основным выбором для Java-ориентированной обработки PDF.

Похожие Продукты

 Русский