Agregar formas de rectángulo a PDF en Java

Agregar un contorno de rectángulo

  1. Cree un nuevo PDF Document.
  2. Agregue un Page al documento.
  3. Cree un Graph contenedor y añádalo a la página.
  4. Cree el Rectangle forma y configure su geometría.
  5. Añada el Rectangle al Graph contenedor.
  6. Guarde el PDF de salida 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());
    }
}

Rellenar un rectángulo con color sólido o degradado

Los ejemplos de rectángulos incluyen:

  • createRectangleFilled para un relleno sólido con Color.getRed()
  • addDrawingWithGradientFill para un GradientAxialShading llenar

Utilizar transparencia alfa

createRectangleWithAlphaColorChannel aplica colores translúcidos con Color.fromArgb(...) para que los rectángulos superpuestos permanezcan visibles.

Controlar el orden z de los rectángulos

  1. Cree un nuevo PDF Document.
  2. Agregue un Page al documento.
  3. Establezca lo requerido Page tamaño.
  4. Agregue lo configurado Rectangle formas a la página de destino con el orden z requerido.
  5. Guarde el PDF de salida Document.
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());
    }
}