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
- Agregar repositorio Maven y dependencia - Incluya el repositorio Maven de Conholdate y la dependencia
conholdate-totalen supom.xml. Esto hace que las clases del SDK comoDocument,PageyGraphestén disponibles.<repositories> <repository> <id>conholdate-repo</id> <name>Conholdate Maven Repository</name> <url>https://repository.conholdate.com/repo/</url> </repository> </repositories>
- Crear el documento PDF y una página - Crear una instancia de
Documenty 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();
- Crear objetos de forma - Crea un objeto
Graphprimero, 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 delGraphInfode 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);
- Agregar formas a una página - Las formas individuales se encuentran dentro de la colección de formas del objeto
Graph. Agregue el propioGrapha 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);
- 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.
- URL de descarga: Conholdate.Total for Java Release
- Documentación: Las instrucciones detalladas de uso están disponibles en la documentación oficial.
- Licencia: Obtenga una licencia temporal en la página de licencia temporal o consulte los precios completos en la página de precios.
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
Graphpara 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)onew Ellipse(300, 150, 150, 100). - Ubicación del Gráfico: El objeto
Graphse posiciona connew Graph(width, height)y se agrega a una página mediantepage.getParagraphs().add(graph). - Colores: Use la clase
com.aspose.pdf.Color(por ejemploColor.getGreen()oColor.getRed()) y establézcalo en una forma medianteshape.getGraphInfo().setColor(...). - Ancho de Línea: Establézcalo con
shape.getGraphInfo().setLineWidth(...), medido en puntos; un valor de1equivale a 1/72 de pulgada. - Líneas: Una forma
Linese 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
Graphantes 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
Documentrá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.
