Agregar gráficos vectoriales a archivos PDF es un requisito común para generar informes, facturas y documentos interactivos. Conholdate.Total for Java es un SDK potente que simplifica la manipulación de PDF en el lado del servidor. En esta guía aprenderá cómo insertar rectángulos, elipses y líneas en un PDF usando un objeto Graph, configurar su apariencia y manejar consideraciones de rendimiento, todo con claros ejemplos de código Java.

Pasos para agregar formas a PDF en Java

  1. Agregar repositorio Maven y dependencia - Incluya el repositorio Maven de Conholdate y la dependencia conholdate-total en su pom.xml. Esto hace que las clases del SDK como Document, Page y Graph estén disponibles.
    <repositories>
        <repository>
            <id>conholdate-repo</id>
            <name>Conholdate Maven Repository</name>
            <url>https://repository.conholdate.com/repo/</url>
        </repository>
    </repositories>
    
  1. Crear el documento PDF y una página - Crear una instancia de Document y agregar una página a su colección de páginas. La clase está documentada en la referencia de API.
// Create Document instance
Document doc = new Document();
// Add page to pages collection of PDF file
com.aspose.pdf.Page page = doc.getPages().add();
  1. Crear objetos de forma - Crea un objeto Graph primero, luego instancia rectángulos, elipses o líneas y añádelos a su colección de formas. Establece la posición, el tamaño y los atributos visuales a través del GraphInfo de cada forma.
// Create Graph instance
com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);

// Rectangle
com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
graph.getShapes().add(rect);

// Ellipse
com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);
graph.getShapes().add(ellipse);

// Line
com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
line.getGraphInfo().setLineWidth(3);
graph.getShapes().add(line);
  1. Agregar formas a una página - Las formas individuales se encuentran dentro de la colección de formas del objeto Graph. Agregue el propio Graph a la colección de párrafos de la página para que todas las formas que contiene se rendericen en esa página.
// Add graph object to paragraphs collection of page instance
page.getParagraphs().add(graph);
  1. Guardar el PDF actualizado - Después de que el gráfico (con todas sus formas) se haya añadido a la página, guarde el documento en un archivo nuevo.
// Save PDF file
doc.save("Shapes.pdf");

Añadiendo formas a PDF en Java - Ejemplo de código completo

El siguiente ejemplo reúne todos los pasos en un solo programa listo‑para‑ejecutar.

import com.aspose.pdf.Document;
import com.aspose.pdf.Color;

public class AddShapesDemo {
    public static void main(String[] args) throws Exception {
        // Create Document instance
        Document doc = new Document();
        // Add page to pages collection of PDF file
        com.aspose.pdf.Page page = doc.getPages().add();

// Create Graph instance
        com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);

// Create Rectangle instance
        com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
        // Add rectangle object to shapes collection of Graph object
        graph.getShapes().add(rect);

// Create ellipse
        com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
        ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
        ellipse.getGraphInfo().setLineWidth(1.5f);
        // Add ellipse object to shapes collection of Graph object
        graph.getShapes().add(ellipse);

// Create line
        com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
        line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
        line.getGraphInfo().setLineWidth(3);
        // Add line object to shapes collection of Graph object
        graph.getShapes().add(line);

// Add graph object to paragraphs collection of page instance
        page.getParagraphs().add(graph);

// Save PDF file
        doc.save("Shapes.pdf");
    }
}

Nota: Este ejemplo de código demuestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar la ruta del archivo de salida (Shapes.pdf) para que coincida con su ubicación de destino real, verifique que todas las dependencias requeridas estén correctamente instaladas y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o póngase en contacto con el equipo de soporte para obtener ayuda.

Installation and Setup in Java

Para comenzar a usar Conholdate.Total for Java, descargue la última versión del sitio oficial y agregue la dependencia Maven mostrada anteriormente. El SDK funciona en cualquier tiempo de ejecución Java 8+ y no requiere bibliotecas nativas adicionales.

Características clave y descripción general

Añadir formas a PDF en Java con Conholdate.Total

Conholdate.Total for Java ofrece una API unificada para crear y editar contenido PDF. La funcionalidad de dibujo de formas trabaja con gráficos vectoriales a través del objeto Graph y su colección de formas, garantizando que los elementos añadidos permanezcan nítidos en cualquier nivel de zoom. Puedes dibujar primitivas básicas (rectángulo, elipse, línea) y combinar varias de ellas dentro de un único Graph antes de colocarlo en una página.

Características de Conholdate.Total que importan para esta tarea

  • Compatibilidad multiplataforma: Funciona en servidores Windows, Linux y macOS.
  • Renderizado de alto rendimiento: Las formas se renderizan usando el mismo motor que genera contenido PDF nativo, evitando la rasterización.
  • Control total sobre la apariencia: Establezca el color del trazo y el ancho de línea para cada forma a través de su objeto GraphInfo.
  • Gráficos agrupados: Añada múltiples formas a un único objeto Graph para que puedan posicionarse y gestionarse juntos en la página.

Configuración de propiedades de forma para una renderización óptima

Al agregar formas, considere las siguientes propiedades para lograr el resultado visual deseado:

  • Posición y Tamaño: Los constructores de forma toman coordenadas y dimensiones en puntos, p. ej. new Rectangle(100, 100, 170, 120) o new Ellipse(300, 150, 150, 100).
  • Ubicación del Gráfico: El objeto Graph se posiciona con new Graph(width, height) y se agrega a una página mediante page.getParagraphs().add(graph).
  • Colores: Use la clase com.aspose.pdf.Color (por ejemplo Color.getGreen() o Color.getRed()) y establézcalo en una forma mediante shape.getGraphInfo().setColor(...).
  • Ancho de Línea: Establézcalo con shape.getGraphInfo().setLineWidth(...), medido en puntos; un valor de 1 equivale a 1/72 de pulgada.
  • Líneas: Una forma Line se crea a partir de una matriz de coordenadas, p. ej. new Line(new float[]{100, 300, 400, 300}), que representa los puntos de inicio y fin de la línea.

Ejemplo de configuración de la apariencia de la forma:

ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);

Consideraciones de rendimiento al agregar formas a PDFs

Agregar muchos objetos vectoriales puede aumentar el tiempo de procesamiento y el uso de memoria. Siga estas directrices:

  • Dibujo por lotes: Agrupe formas relacionadas en un único objeto Graph antes de agregar ese gráfico a la página.
  • Reutilizar objetos: Si necesita formas idénticas en varias páginas, reutilice la lógica de configuración de formas en lugar de duplicarla.
  • Evitar el escalado excesivo: Defina las formas con el tamaño de visualización final para evitar conversiones raster costosas.
  • Liberar recursos: Guarde y libere el Document rápidamente una vez que se hayan agregado todas las formas.

Conclusión

Conholdate.Total for Java ofrece a los desarrolladores Java una forma sencilla de agregar formas a documentos PDF, lo que permite crear informes e facturas ricos e interactivos. Siguiendo los pasos, consejos de configuración y directrices de rendimiento de esta guía, podrá integrar gráficos vectoriales en su flujo de trabajo PDF con confianza. Recuerde obtener una licencia adecuada para uso en producción; una licencia temporal está disponible para evaluación, y los detalles completos de precios se enumeran en la página de precios.

Preguntas frecuentes

¿Necesito crear un objeto Graph para cada forma?
No. Un solo objeto Graph puede contener múltiples formas — rectángulos, elipses y líneas pueden añadirse a la colección de formas del mismo gráfico antes de que el gráfico se añada a la página.

¿Es posible agregar formas a una página específica de un PDF de varias páginas?
Sí. Obtenga la página objetivo de doc.getPages() y llame a page.getParagraphs().add(graph) en esa instancia específica de Page.

¿A qué formatos de archivo puedo exportar después de agregar formas?
El método Document.save() de Conholdate.Total for Java puede escribir en PDF así como en otros formatos compatibles con el SDK. Use doc.save("Shapes.pdf") para guardar el resultado como un archivo PDF estándar.