Добавление эллиптических фигур в PDF на Java

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

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

        Ellipse ellipse1 = new Ellipse(150, 100, 120, 60);
        ellipse1.getGraphInfo().setColor(Color.getGreenYellow());
        ellipse1.setText(new TextFragment("Ellipse"));
        graph.getShapes().addItem(ellipse1);

        page.getParagraphs().add(graph);
        document.save(outputFile.toString());
    }
}

Полный пример добавляет два разных контурных эллипса к одному и тому же графу.

Добавление заполненных эллипсов

createEllipseFilled заполняет два эллипса Color.getGreenYellow() и Color.getDarkRed().

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

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

        TextFragment textFragment = new TextFragment("Ellipse");
        textFragment.getTextState().setFont(FontRepository.findFont("Helvetica"));
        textFragment.getTextState().setFontSize(24);

        Ellipse ellipse1 = new Ellipse(100, 100, 120, 180);
        ellipse1.getGraphInfo().setFillColor(Color.getGreenYellow());
        ellipse1.setText(textFragment);
        graph.getShapes().addItem(ellipse1);

        page.getParagraphs().add(graph);
        document.save(outputFile.toString());
    }
}