Добавление линейных фигур в PDF на Java

Добавление пунктирной линии

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

        Line line = new Line(new float[]{100, 100, 200, 100});
        line.getGraphInfo().setDashArray(new int[]{0, 1, 0});
        line.getGraphInfo().setDashPhase(1);
        graph.getShapes().addItem(line);

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

Добавление цветной пунктирной или штриховой линии

addDottedDashedLine использует те же координаты и настройки пунктиров, но также применяет Color.getRed().

Рисование линий по всей странице

  1. Создайте новый PDF Документ.
  2. Добавьте Страница в документ.
  3. Создайте контейнер Граф и добавьте его на страницу.
  4. Создайте фигуру Линия и настройте её координаты.
  5. Добавьте Линия в контейнер Граф.
  6. Сохраните выходной PDF Документ.
public static void drawLineAcrossPage(Path outputFile) {
    try (Document document = new Document()) {
        Page page = document.getPages().add();
        page.getPageInfo().getMargin().setLeft(0);
        page.getPageInfo().getMargin().setRight(0);
        page.getPageInfo().getMargin().setBottom(0);
        page.getPageInfo().getMargin().setTop(0);

        Graph graph = new Graph(page.getPageInfo().getWidth(), page.getPageInfo().getHeight());
        Line line = new Line(new float[]{
                (float) page.getRect().getLLX(),
                0,
                (float) page.getPageInfo().getWidth(),
                (float) page.getRect().getURY()
        });
        graph.getShapes().addItem(line);
        page.getParagraphs().add(graph);

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