Gerenciar Texto da Apresentação em Node.js via .NET

Visão geral

No Aspose.Slides, o texto em um slide pertence a uma forma. Uma autoforma, como um retângulo, possui uma caixa de texto; a caixa de texto contém parágrafos, e cada parágrafo contém porções, que são trechos de texto com a mesma formatação. Você altera o texto através da caixa de texto e a fonte através do formato de uma porção.

Este artigo adiciona uma caixa de texto a um slide e salva a apresentação. Em seguida, abre o arquivo salvo e altera o texto da caixa de texto, o tamanho da fonte e o estilo negrito.

Os exemplos requerem um projeto configurado como descrito em Instalação. Salve cada exemplo como um arquivo .js na pasta do projeto e execute‑o a partir dessa pasta com node.

Adicionar uma caixa de texto

Para adicionar uma caixa de texto, adicione uma autoforma a um slide usando o método addAutoShape e atribua texto a ela com o método addTextFrame. O exemplo a seguir adiciona um retângulo ao primeiro slide de uma nova apresentação e salva a apresentação como text-box.pptx:

const { Presentation, ShapeType, SaveFormat } = require("aspose.slides.via.net");

const presentation = new Presentation();
try {
    const slide = presentation.slides.get(0);

    // A posição (x, y) e o tamanho (largura, altura) estão em pontos.
    const textBox = slide.shapes.addAutoShape(ShapeType.Rectangle, 100, 100, 500, 80);
    textBox.addTextFrame("Quarterly report");

    presentation.save("text-box.pptx", SaveFormat.Pptx);
    console.log("Saved text-box.pptx");
} finally {
    presentation.dispose();
}

O slide em text-box.pptx contém um retângulo, 500 pontos de largura e 80 pontos de altura, com o texto “Quarterly report” na fonte e tamanho padrão. O próximo exemplo altera essa caixa de texto.

Alterar o texto e sua formatação

O exemplo a seguir abre text-box.pptx, que o exemplo anterior criou, e obtém a primeira forma no primeiro slide. Formas como imagens e tabelas não possuem caixa de texto, portanto o exemplo verifica se a forma é uma AutoShape antes de usar a textFrame da forma. Em seguida, ele realiza o seguinte:

  1. Ele substitui o texto através da propriedade text da caixa de texto. Após isso, a caixa de texto contém um parágrafo com uma única porção.
  2. Ele obtém essa porção das coleções paragraphs e portions, e lê seu portionFormat.
  3. Ele define fontHeight, o tamanho da fonte em pontos, e fontBold, que aceita um valor NullableBool.
const { Presentation, AutoShape, NullableBool, SaveFormat } = require("aspose.slides.via.net");

const presentation = new Presentation("text-box.pptx");
try {
    const shape = presentation.slides.get(0).shapes.get(0);
    if (shape instanceof AutoShape) {
        const textFrame = shape.textFrame;
        textFrame.text = "Quarterly report: third quarter";

        const portionFormat = textFrame.paragraphs.get(0).portions.get(0).portionFormat;
        portionFormat.fontHeight = 32;
        portionFormat.fontBold = NullableBool.True;

        presentation.save("text-box-updated.pptx", SaveFormat.Pptx);
        console.log("Saved text-box-updated.pptx");
    } else {
        console.log("The first shape on the first slide is not an AutoShape.");
    }
} finally {
    presentation.dispose();
}

Em text-box-updated.pptx, a caixa de texto exibe “Quarterly report: third quarter” em negrito de 32 pontos. Como o novo texto é uma única porção, as duas propriedades de formatação se aplicam a todo ele. Sem uma licença, cada salvamento adiciona uma marca d’água de avaliação. Como text-box.pptx foi salvo em modo de avaliação, text-box-updated.pptx contém duas; veja Avaliar Aspose.Slides.

FAQ

Por que fontBold aceita um valor NullableBool em vez de true ou false?

Uma porção pode deixar uma propriedade indefinida e herdá‑la do parágrafo, da forma ou do layout e mestre do slide. NullableBool.NotDefined significa “herdar”, enquanto NullableBool.True e NullableBool.False substituem o valor herdado. Atribuir true ou false gera um erro. Pelo mesmo motivo, fontHeight retorna NaN quando a porção herda seu tamanho de fonte.

Como alterar a cor do texto?

Defina o preenchimento do formato da porção: atribua FillType.Solid a portionFormat.fillFormat.fillType e, em seguida, atribua uma cor como "#FF0000" a portionFormat.fillFormat.solidFillColor.color. Adicione FillType aos nomes que você importa do pacote.

Como formatar apenas parte do texto?

A formatação pertence às porções, portanto coloque essa parte do texto em uma porção própria. Crie a porção com Portion.CreatePortionFromText, adicione‑a a um parágrafo usando o método add da coleção portions do parágrafo e, então, defina o portionFormat da nova porção. Adicione Portion aos nomes que você importa do pacote.

Por que a leitura de texto retorna “… text has been truncated due to evaluation version limitation”?

Sem uma licença, o Aspose.Slides retorna apenas os cinco primeiros caracteres de qualquer texto maior que você ler, como textFrame.text, seguido por este aviso. O texto que você grava é salvo integralmente. Aplique uma licença conforme descrito em Licenciamento para ler o texto completo.