Usando formas de documento em Aspose.Words para Java

Introdução ao uso de formas de documentos em Aspose.Words para Java

Neste guia abrangente, mergulharemos no mundo das formas de documentos em Aspose.Words for Java. As formas são elementos essenciais quando se trata de criar documentos interativos e visualmente atraentes. Se você precisa adicionar textos explicativos, botões, imagens ou marcas d’água, Aspose.Words for Java fornece as ferramentas para fazer isso com eficiência. Vamos explorar como usar essas formas passo a passo com exemplos de código-fonte.

Introdução às formas de documentos

Antes de entrarmos no código, vamos configurar nosso ambiente. Certifique-se de ter o Aspose.Words for Java integrado ao seu projeto. Se ainda não o fez, você pode baixá-lo no site AsposeBaixe Aspose.Words para Java

Adicionando formas a documentos

Inserindo um GroupShape

AGroupShape permite agrupar várias formas. Veja como você pode criar e inserir umGroupShape:

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");

Inserindo um formato de caixa de texto

Para inserir uma forma de caixa de texto, você pode usar oinsertShape método conforme mostrado no exemplo abaixo:

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);

Manipulando Propriedades de Forma

Gerenciando proporção de aspecto

Você pode controlar se a proporção de uma forma está bloqueada ou não. Veja como desbloquear a proporção de uma 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");

Colocando uma forma em uma célula de tabela

Se você precisar colocar uma forma dentro de uma célula da tabela, poderá fazer isso com o seguinte 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); // Exiba a forma fora da célula da tabela se ela for colocada em uma célula.
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");

Trabalhando com formas SmartArt

Detectando formas SmartArt

Você pode detectar formas SmartArt em um documento usando o seguinte 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.");

Atualizando desenhos SmartArt

Para atualizar desenhos SmartArt em um documento, use o seguinte 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();
}

Conclusão

Neste guia, exploramos o mundo das formas de documentos em Aspose.Words for Java. Você aprendeu como adicionar diversas formas aos seus documentos, manipular suas propriedades e trabalhar com formas SmartArt. Com esse conhecimento, você pode criar documentos interativos e visualmente atraentes com facilidade.

Perguntas frequentes

O que é Aspose.Words para Java?

Aspose.Words for Java é uma biblioteca Java que permite aos desenvolvedores criar, modificar e converter documentos do Word programaticamente. Ele oferece uma ampla gama de recursos e ferramentas para trabalhar com documentos em vários formatos.

Como posso baixar Aspose.Words para Java?

Você pode baixar Aspose.Words for Java do site Aspose seguindo este link:Baixe Aspose.Words para Java

Quais são os benefícios de usar formatos de documentos?

As formas dos documentos adicionam elementos visuais e interatividade aos seus documentos, tornando-os mais envolventes e informativos. Com formas, você pode criar textos explicativos, botões, imagens, marcas d’água e muito mais, aprimorando a experiência geral do usuário.

Posso personalizar a aparência das formas?

Sim, você pode personalizar a aparência das formas ajustando suas propriedades como tamanho, posição, rotação e cor de preenchimento. Aspose.Words for Java oferece amplas opções para personalização de formas.

O Aspose.Words para Java é compatível com SmartArt?

Sim, Aspose.Words for Java oferece suporte a formas SmartArt, permitindo que você trabalhe com diagramas e gráficos complexos em seus documentos.