在 Java 中向 PDF 添加椭圆形状

添加椭圆轮廓

  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 Document。
  2. 将一个 Page 添加到文档。
  3. 创建一个 TextFragment 并设置所需的文本格式选项。
  4. 创建一个 Graph 容器并将其添加到页面。
  5. 创建 Ellipse 形状并配置其几何。
  6. 添加 Ellipse 到 Graph 容器。
  7. 保存输出 PDF Document。
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());
    }
}