Come formattare il testo in .NET

Come formattare il testo in .NET

Aspose.Slides FOSS for .NET fornisce una formattazione del testo a grana fine tramite la classe PortionFormat. Un Portion è l’unità indipendente più piccola di testo; corrisponde a una singola sequenza di formattazione all’interno di un paragrafo. Questa guida mostra come applicare la formattazione in grassetto, corsivo, dimensione del carattere e colore al testo in una presentazione.

Guida passo-passo

Passo 1: Installa il pacchetto

dotnet add package Aspose.Slides.Foss

Passo 2: Aggiungi una forma con una casella di testo

Prima di formattare il testo, una forma deve contenere un TextFrame. Usa shape.AddTextFrame() per crearne uno.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 150);
var tf = shape.AddTextFrame("Default text: will be formatted");
prs.Save("output.pptx", SaveFormat.Pptx);

Passo 3: Accedi al TextFrame

shape.AddTextFrame() restituisce l’oggetto TextFrame. È possibile recuperarlo in seguito tramite shape.TextFrame.

var tf = shape.TextFrame;          // if the frame already exists
var tf = shape.AddTextFrame("");   // creates a new frame

Un TextFrame contiene un elenco di oggetti Paragraph (tf.Paragraphs). Ogni Paragraph contiene oggetti Portion (paragraph.Portions).


Passo 4: Applicare la formattazione in grassetto e corsivo

Usa PortionFormat.FontBold e PortionFormat.FontItalic. Queste proprietà accettano NullableBool.True, NullableBool.False o NullableBool.NotDefined (eredita dal master).

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 150);
var tf = shape.AddTextFrame("Bold and italic text");

var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontBold = NullableBool.True;
fmt.FontItalic = NullableBool.True;

prs.Save("bold-italic.pptx", SaveFormat.Pptx);

Passo 5: Imposta la dimensione e il colore del carattere

Imposta PortionFormat.FontHeight per la dimensione (in punti) e usa FillFormat per il colore.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 150);
var tf = shape.AddTextFrame("Large corporate-blue heading");

var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontHeight = 32;                          // 32pt font
fmt.FontBold = NullableBool.True;
fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 0, 70, 127);

prs.Save("colored-text.pptx", SaveFormat.Pptx);

Color.FromArgb(alpha, red, green, blue) accetta valori da 0 a 255 per ogni canale.


Passo 6: Più parti in un unico paragrafo

Un singolo paragrafo può contenere più porzioni con formattazioni diverse. Aggiungi un nuovo Portion alla collezione Portions di un paragrafo:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 600, 100);
var tf = shape.AddTextFrame("");  // start with empty frame

var paragraph = tf.Paragraphs[0];

// First portion: normal text
var portion1 = paragraph.Portions[0];
portion1.Text = "Normal text followed by ";
portion1.PortionFormat.FontHeight = 20;

// Second portion: bold red text
var portion2 = new Portion();
portion2.Text = "bold red text";
portion2.PortionFormat.FontHeight = 20;
portion2.PortionFormat.FontBold = NullableBool.True;
portion2.PortionFormat.FillFormat.FillType = FillType.Solid;
portion2.PortionFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);
paragraph.Portions.Add(portion2);

prs.Save("mixed-format.pptx", SaveFormat.Pptx);

Problemi comuni e soluzioni

Il testo appare nero anche dopo aver impostato il colore

Assicurati che FillFormat.FillType = FillType.Solid sia impostato prima di assegnare il colore. Se non imposti il tipo di riempimento, la modifica del colore potrebbe non avere effetto.

NullableBool.True vs true

PortionFormat.FontBold si aspetta NullableBool.True, non il C# true. Assegnare C# true non compilerà perché i tipi sono incompatibili.

Il carattere non appare nel file salvato

La proprietà LatinFont imposta la famiglia di font Latin. Se non impostata, viene utilizzato il font del tema della presentazione. I font personalizzati devono essere incorporati o disponibili sulla macchina di visualizzazione.


Domande Frequenti

Come faccio a cambiare la famiglia di caratteri?

Imposta PortionFormat.LatinFont:

fmt.LatinFont = new FontData("Arial");

FontData accetta il nome della famiglia di caratteri come stringa.

Come impostare l’allineamento del paragrafo?

Usa ParagraphFormat.Alignment:

tf.Paragraphs[0].ParagraphFormat.Alignment = TextAlignment.Center;

Valori supportati: Left, Center, Right, Justify.

Come impostare l’interlinea?

Usa ParagraphFormat.SpaceBefore (punti prima del paragrafo) o ParagraphFormat.SpaceAfter (punti dopo il paragrafo):

tf.Paragraphs[0].ParagraphFormat.SpaceBefore = 12;   // 12pt before
tf.Paragraphs[0].ParagraphFormat.SpaceAfter = 6;     // 6pt after

Vedi anche

 Italiano