Gestire il testo della presentazione in Node.js via .NET

Panoramica

In Aspose.Slides, il testo su una diapositiva appartiene a una forma. Un’autoshape, come un rettangolo, ha un riquadro di testo; il riquadro contiene paragrafi e ogni paragrafo contiene porzioni, che sono sequenze di testo con la stessa formattazione. Si modifica il testo tramite il riquadro di testo e il carattere tramite il formato di una porzione.

Questo articolo aggiunge una casella di testo a una diapositiva e salva la presentazione. Successivamente apre il file salvato e modifica il testo della casella, la dimensione del carattere e lo stile grassetto.

Gli esempi richiedono un progetto configurato come descritto in Installazione. Salva ciascun esempio come file .js nella cartella del progetto ed eseguilo da quella cartella con node.

Aggiungere una casella di testo

Per aggiungere una casella di testo, aggiungi un’autoshape a una diapositiva con il metodo addAutoShape e fornisci del testo con il metodo addTextFrame. L’esempio seguente aggiunge un rettangolo alla prima diapositiva di una nuova presentazione e salva la presentazione come text-box.pptx:

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

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

    // La posizione (x, y) e le dimensioni (larghezza, altezza) sono in punti.
    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();
}

La diapositiva in text-box.pptx contiene un rettangolo largo 500 punti e alto 80 punti, con il testo “Quarterly report” nel carattere e nella dimensione predefiniti. L’esempio successivo modifica questa casella di testo.

Modificare il testo e la sua formattazione

L’esempio seguente apre text-box.pptx, creato dall’esempio precedente, e ottiene la prima forma nella prima diapositiva. Forme come immagini e tabelle non hanno un riquadro di testo, quindi l’esempio verifica che la forma sia un'AutoShape' prima di utilizzare il textFrame della forma. Poi esegue quanto segue:

  1. Sostituisce il testo tramite la proprietà text del riquadro di testo. Dopo ciò, il riquadro contiene un paragrafo con una porzione.
  2. Recupera quella porzione dalle collezioni paragraphs e portions e legge il suo portionFormat.
  3. Imposta fontHeight, la dimensione del carattere in punti, e fontBold, che accetta un valore 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();
}

In text-box-updated.pptx, la casella di testo mostra “Quarterly report: third quarter” in grassetto di 32 punti. Poiché il nuovo testo è una singola porzione, le due proprietà di formattazione si applicano a tutto il testo. Senza licenza, ogni salvataggio aggiunge una filigrana di valutazione. Poiché text-box.pptx è stato salvato in modalità valutazione, text-box-updated.pptx ne contiene due; vedi Valutare Aspose.Slides.

FAQ

Perché fontBold accetta un valore NullableBool anziché true o false?

Una porzione può lasciare una proprietà non definita e ereditarla dal paragrafo, dalla forma o dal layout e master della diapositiva. NullableBool.NotDefined significa “eredita”, mentre NullableBool.True e NullableBool.False sovrascrivono il valore ereditato. Assegnare true o false genera un errore. Per lo stesso motivo, fontHeight restituisce NaN quando la porzione eredita la sua dimensione del carattere.

Come modifico il colore del testo?

Imposta il riempimento del formato della porzione: assegna FillType.Solid a portionFormat.fillFormat.fillType, quindi assegna un colore come "#FF0000" a portionFormat.fillFormat.solidFillColor.color. Aggiungi FillType ai nomi che importi dal pacchetto.

Come formattare solo una parte del testo?

La formattazione appartiene alle porzioni, quindi inserisci quella parte del testo in una propria porzione. Crea la porzione con Portion.CreatePortionFromText, aggiungila a un paragrafo con il metodo add della collezione portions del paragrafo, quindi imposta il portionFormat della nuova porzione. Aggiungi Portion ai nomi che importi dal pacchetto.

Perché la lettura del testo restituisce “… text has been truncated due to evaluation version limitation”?

Senza licenza, Aspose.Slides restituisce solo i primi cinque caratteri di qualsiasi testo più lungo che leggi, ad esempio textFrame.text, seguito da questo avviso. Il testo che scrivi viene salvato per intero. Applica una licenza come descritto nella Licenza per leggere il testo completo.