Генерация PDF в Java: Альтернатива iText

Вопрос или проблема

Я совершенно нов в генерации или отображении PDF. Я работаю над приложением, чтобы заменить iText (из-за изменения лицензии) и создать свои RESTful эндпоинты, используя любые API для PDF на Java. Библиотека должна уметь конвертировать изображения и… другие форматы в PDF.

  • Программно считывать/заполнять данные из PDF, а также объединять.
  • Также, если мы сможем хостить это самостоятельно, это будет наилучший выбор. Не могли бы вы предоставить некоторую информацию по этому поводу?

Я могу порекомендовать PDFBox от Apache. Так как я предполагаю, что вы используете Java, раз переходите от iText.

Это позволяет вам

  • создавать новые PDF-документы
  • манипулировать существующими документами
  • объединять два или более существующих PDF в один
  • извлекать содержимое из документов

Два месяца назад был выпущен PDFBox 3.0.0-alpha3, так как это программное обеспечение с открытым исходным кодом, у него также есть довольно активное сообщество, которое его дальше развивает и выпускает исправления ошибок.

Ответ или решение

Для генерации PDF-документов в Java существует несколько альтернатив библиотеке iText, особенно учитывая изменения в лицензировании. Одним из наиболее известных и активно развиваемых решений является библиотека Apache PDFBox.

Apache PDFBox

Apache PDFBox – это мощная библиотека для работы с PDF-документами. Она позволяет выполнять широкий спектр операций, включая:

  • Создание новых PDF-документов: Вы можете программно создавать документы, добавляя текст, изображения и другие элементы.

  • Манипулирование существующими документами: PDFBox позволяет изменять содержимое уже созданных PDF-файлов. Вы можете добавлять или удалять страницы, изменять текст и изображения.

  • Слияние PDF-документов: Эта библиотека позволяет объединять несколько PDF-файлов в один, что может быть полезно для подготовки отчетов или других документов.

  • Извлечение содержимого: С её помощью можно извлекать текст и изображения из существующих PDF-документов.

Преимущества PDFBox

  1. Open Source: PDFBox является проектом с открытым исходным кодом, что позволяет вам свободно использовать и модифицировать его по вашим требованиям.

  2. Активное сообщество: Как упоминалось ранее, в апреле 2023 года была выпущена версия PDFBox 3.0.0-alpha3, что свидетельствует о постоянном развитии и поддержке библиотеки.

  3. Поддержка хостинга: Библиотеку можно легко интегрировать в ваше приложение и хостить локально, что соответствует вашему требованию.

Пример использования

Вот простой пример, как можно использовать PDFBox для создания PDF-документа и добавления в него изображения:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.PDImageXObject;

import java.io.IOException;

public class CreatePDF {
    public static void main(String[] args) {
        try (PDDocument document = new PDDocument()) {
            PDPage page = new PDPage(PDRectangle.A4);
            document.addPage(page);

            PDImageXObject image = PDImageXObject.createFromFile("path_to_image.jpg", document);
            PDPageContentStream contentStream = new PDPageContentStream(document, page);
            contentStream.drawImage(image, 100, 700); // Положение изображения на странице
            contentStream.close();

            document.save("output.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Заключение

С учетом вашего запроса на замену iText для генерации и манипулирования PDF-документами, Apache PDFBox является отличным вариантом. Эта библиотека покроет все ваши требования и придаст вашему приложению большую гибкость и функциональность. Рекомендуем ознакомиться с официальной документацией PDFBox для более глубокого понимания возможностей библиотеки и начала работы.

Оцените материал
Добавить комментарий

Капча загружается...