Добавление прямоугольных форм в PDF на Java

Добавление контура прямоугольника

  1. Создайте новый PDF Document.
  2. Добавьте Page в документ.
  3. Создайте контейнер Graph и добавьте его на страницу.
  4. Создайте фигуру Rectangle и настройте её геометрию.
  5. Добавьте Rectangle в контейнер Graph.
  6. Сохраните выходной PDF Document.
public static void addRectangle(Path outputFile) {
    try (Document document = new Document()) {
        Page page = document.getPages().add();
        Graph graph = new Graph(400.0, 300.0);
        page.getParagraphs().add(graph);
        graph.setBorder(new BorderInfo(BorderSide.All, Color.getRed()));

        Rectangle rectangle = new Rectangle(20, 20, 350, 250);
        graph.getShapes().addItem(rectangle);

        document.save(outputFile.toString());
    }
}

Заполнение прямоугольника сплошным или градиентным цветом

Примеры прямоугольников включают:

  • createRectangleFilled для сплошной заливки с Color.getRed()
  • addDrawingWithGradientFill для заливки с помощью GradientAxialShading

Использование альфа-прозрачности

createRectangleWithAlphaColorChannel применяет полупрозрачные цвета с Color.fromArgb(...), чтобы перекрывающиеся прямоугольники оставались видимыми.

Управление порядком наложения прямоугольников

  1. Создайте новый PDF Документ.
  2. Добавьте Страница в документ.
  3. Установите требуемый размер страницы Страница.
  4. Добавьте настроенные фигуры Прямоугольник на целевую страницу в требуемом порядке наложения.
  5. Сохраните выходной PDF Документ.
public static void controlZOrderOfRectangle(Path outputFile) {
    try (Document document = new Document()) {
        Page page = document.getPages().add();
        page.setPageSize(375, 300);
        page.getPageInfo().getMargin().setLeft(0);
        page.getPageInfo().getMargin().setTop(0);

        addRectangleToPage(page, 50, 40, 60, 40, Color.getRed(), 2);
        addRectangleToPage(page, 20, 20, 30, 30, Color.getBlue(), 1);
        addRectangleToPage(page, 40, 40, 60, 30, Color.getGreen(), 0);

        document.save(outputFile.toString());
    }
}