Uso de formas de documentos en Aspose.Words para Java

Introducción al uso de formas de documentos en Aspose.Words para Java

En esta guía completa, profundizaremos en el mundo de las formas de documentos en Aspose.Words para Java. Las formas son elementos esenciales cuando se trata de crear documentos interactivos y visualmente atractivos. Ya sea que necesite agregar leyendas, botones, imágenes o marcas de agua, Aspose.Words para Java proporciona las herramientas para hacerlo de manera eficiente. Exploremos cómo usar estas formas paso a paso con ejemplos de código fuente.

Comenzando con las formas de documentos

Antes de pasar al código, configuremos nuestro entorno. Asegúrese de tener Aspose.Words para Java integrado en su proyecto. Si aún no lo has hecho, puedes descargarlo desde el sitio web de Aspose.Descargar Aspose.Words para Java

Agregar formas a documentos

Insertar una forma de grupo

AGroupShape le permite agrupar varias formas. Así es como puedes crear e insertar unGroupShape:

Document doc = new Document();
doc.ensureMinimum();

GroupShape groupShape = new GroupShape(doc);
Shape accentBorderShape = new Shape(doc, ShapeType.ACCENT_BORDER_CALLOUT_1);
accentBorderShape.setWidth(100.0);
accentBorderShape.setHeight(100.0);

groupShape.appendChild(accentBorderShape);

Shape actionButtonShape = new Shape(doc, ShapeType.ACTION_BUTTON_BEGINNING);
actionButtonShape.setLeft(100.0);
actionButtonShape.setWidth(100.0);
actionButtonShape.setHeight(200.0);

groupShape.appendChild(actionButtonShape);

groupShape.setWidth(200.0);
groupShape.setHeight(200.0);
groupShape.setCoordSize(new Dimension(200, 200));

DocumentBuilder builder = new DocumentBuilder(doc);
builder.insertNode(groupShape);

doc.save("Your Directory Path" + "WorkingWithShapes.AddGroupShape.docx");

Insertar una forma de cuadro de texto

Para insertar una forma de cuadro de texto, puede utilizar elinsertShape método como se muestra en el siguiente ejemplo:

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.insertShape(ShapeType.TEXT_BOX, RelativeHorizontalPosition.PAGE, 100.0,
    RelativeVerticalPosition.PAGE, 100.0, 50.0, 50.0, WrapType.NONE);

shape.setRotation(30.0);
builder.writeln();

shape = builder.insertShape(ShapeType.TEXT_BOX, 50.0, 50.0);
shape.setRotation(30.0);

OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(SaveFormat.DOCX);
saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_TRANSITIONAL);

doc.save("Your Directory Path" + "WorkingWithShapes.InsertShape.docx", saveOptions);

Manipulación de propiedades de forma

Gestión de la relación de aspecto

Puedes controlar si la relación de aspecto de una forma está bloqueada o no. A continuación se explica cómo desbloquear la relación de aspecto de una forma:

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.insertImage(getImagesDir() + "Transparent background logo.png");
shape.setAspectRatioLocked(false);

doc.save("Your Directory Path" + "WorkingWithShapes.AspectRatioLocked.docx");

Colocar una forma en una celda de tabla

Si necesita colocar una forma dentro de una celda de la tabla, puede lograrlo con el siguiente código:

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

builder.startTable();
builder.getRowFormat().setHeight(100.0);
builder.getRowFormat().setHeightRule(HeightRule.EXACTLY);

for (int i = 0; i < 31; i++) {
    if (i != 0 && i % 7 == 0)
        builder.endRow();

    builder.insertCell();
    builder.write("Cell contents");
}

builder.endTable();

Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT);
watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);
watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);
watermark.isLayoutInCell(true); // Muestre la forma fuera de la celda de la tabla si se colocará en una celda.
watermark.setWidth(300.0);
watermark.setHeight(70.0);
watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
watermark.setVerticalAlignment(VerticalAlignment.CENTER);
watermark.setRotation(-40);
watermark.setFillColor(Color.GRAY);
watermark.setStrokeColor(Color.GRAY);
watermark.getTextPath().setText("watermarkText");
watermark.getTextPath().setFontFamily("Arial");
watermark.setName("WaterMark_{Guid.NewGuid()}");
watermark.setWrapType(WrapType.NONE);

Run run = (Run) doc.getChildNodes(NodeType.RUN, true).get(doc.getChildNodes(NodeType.RUN, true).getCount() - 1);
builder.moveTo(run);
builder.insertNode(watermark);

doc.getCompatibilityOptions().optimizeFor(MsWordVersion.WORD_2010);
doc.save("Your Directory Path" + "WorkingWithShapes.LayoutInCell.docx");

Trabajar con formas SmartArt

Detección de formas SmartArt

Puede detectar formas SmartArt en un documento usando el siguiente código:

Document doc = new Document("Your Directory Path" + "SmartArt.docx");
List<Shape> shapes = IterableUtils.toList(doc.getChildNodes(NodeType.SHAPE, true));
int count = (int) shapes.stream().filter(s -> s.hasSmartArt()).count();
System.out.println("The document has " + count + " shapes with SmartArt.");

Actualización de dibujos SmartArt

Para actualizar dibujos SmartArt dentro de un documento, use el siguiente código:

Document doc = new Document("Your Directory Path" + "SmartArt.docx");
for (Shape shape : (Iterable<Shape>) doc.getChildNodes(NodeType.SHAPE, true)) {
    if (shape.hasSmartArt())
        shape.updateSmartArtDrawing();
}

Conclusión

En esta guía, exploramos el mundo de las formas de documentos en Aspose.Words para Java. Ha aprendido a agregar varias formas a sus documentos, manipular sus propiedades y trabajar con formas SmartArt. Con este conocimiento, podrá crear documentos interactivos y visualmente atractivos con facilidad.

Preguntas frecuentes

¿Qué es Aspose.Words para Java?

Aspose.Words para Java es una biblioteca de Java que permite a los desarrolladores crear, modificar y convertir documentos de Word mediante programación. Proporciona una amplia gama de funciones y herramientas para trabajar con documentos en varios formatos.

¿Cómo puedo descargar Aspose.Words para Java?

Puede descargar Aspose.Words para Java desde el sitio web de Aspose siguiendo este enlace:Descargar Aspose.Words para Java

¿Cuáles son los beneficios de utilizar formas de documentos?

Las formas de los documentos añaden elementos visuales e interactividad a sus documentos, haciéndolos más atractivos e informativos. Con las formas, puede crear leyendas, botones, imágenes, marcas de agua y más, mejorando la experiencia general del usuario.

¿Puedo personalizar la apariencia de las formas?

Sí, puedes personalizar la apariencia de las formas ajustando sus propiedades como tamaño, posición, rotación y color de relleno. Aspose.Words para Java ofrece amplias opciones para la personalización de formas.

¿Aspose.Words para Java es compatible con SmartArt?

Sí, Aspose.Words para Java admite formas SmartArt, lo que le permite trabajar con diagramas y gráficos complejos en sus documentos.