PDF генерация в Java с iText

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Что такое iText и зачем он нужен?

iText — это мощная библиотека для Java, предназначенная для создания и обработки PDF-документов. Она позволяет программно генерировать PDF-файлы, добавлять текст, изображения, таблицы, формы и аннотации. Библиотека широко используется в корпоративных приложениях для автоматизации отчетов, счетов, контрактов и других документов. Основное преимущество iText — полный контроль над содержимым и структурой PDF.

Установка iText

Для подключения iText в проекте Maven добавьте зависимость в pom.xml:

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext7-core</artifactId>
    <version>7.2.5</version>
    <type>pom</type>
</dependency>

Для Gradle:

implementation 'com.itextpdf:itext7-core:7.2.5'

Основные функции iText

  • Создание PDF с нуля: добавление абзацев, таблиц, изображений.
  • Работа с формами: заполнение и извлечение данных из AcroForms.
  • Шифрование и защита: установка паролей, ограничение на печать или копирование.
  • Конвертация HTML в PDF: с помощью модуля html2pdf.
  • Слияние и разделение страниц: работа с несколькими документами.

Пример кода на Java

Создадим простой PDF с текстом и таблицей:

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Table;

public class PdfGenerator {
    public static void main(String[] args) throws Exception {
        String dest = "example.pdf";
        PdfWriter writer = new PdfWriter(dest);
        PdfDocument pdf = new PdfDocument(writer);
        Document document = new Document(pdf);

        // Добавляем заголовок
        document.add(new Paragraph("Привет, мир!"));

        // Создаем таблицу 3x2
        Table table = new Table(3);
        table.addCell("Имя");
        table.addCell("Возраст");
        table.addCell("Город");
        table.addCell("Анна");
        table.addCell("25");
        table.addCell("Москва");
        table.addCell("Иван");
        table.addCell("30");
        table.addCell("СПб");

        document.add(table);
        document.close();
        System.out.println("PDF создан: " + dest);
    }
}

Когда использовать iText

Библиотека идеально подходит для:

  • Генерации отчетов и счетов в веб-приложениях (Spring Boot, Java EE).
  • Автоматизации документооборота: контракты, акты, накладные.
  • Создания интерактивных PDF-форм для заполнения пользователями.
  • Конвертации HTML-шаблонов в PDF для печати или рассылки.

iText — стандарт де-факто для работы с PDF в Java. Альтернативы: Apache PDFBox (более низкоуровневый) и Aspose.PDF (коммерческий).

Рекомендаций