Kako formatirati tekst u .NET
Aspose.Slides FOSS for .NET provides fine-grained text formatting through the PortionFormat klasa. A Portion je najmanja nezavisna jedinica teksta; ona se mapira na jedan formatirajući segment unutar pasusa. Ovaj vodič pokazuje kako primeniti podebljano, kurziv, veličinu fonta i boju formatiranja na tekst u prezentaciji.
Vodič korak po korak
Korak 1: Instalirajte paket
dotnet add package Aspose.Slides.FossKorak 2: Dodajte oblik sa tekstualnim okvirom
Pre formatiranja teksta, oblik mora da sadrži TextFrame. Koristite shape.AddTextFrame() da biste ga kreirali.
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);Korak 3: Pristupite TextFrame-u
shape.AddTextFrame() vraća TextFrame objekat. Takođe ga možete preuzeti kasnije putem shape.TextFrame.
var tf = shape.TextFrame; // if the frame already exists
var tf = shape.AddTextFrame(""); // creates a new frameA TextFrame sadrži listu Paragraph objekata (tf.Paragraphs). Paragraph sadrži Portion objekata (paragraph.Portions).
Korak 4: Primena podebljanog i kurziva
Koristite PortionFormat.FontBold i PortionFormat.FontItalic. Ova svojstva prihvataju NullableBool.True, NullableBool.False, ili NullableBool.NotDefined (nasledi od mastera).
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);Korak 5: Postavljanje veličine fonta i boje
Postavi PortionFormat.FontHeight za veličinu (u tačkama) i koristi FillFormat za boju.
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) prihvata vrednosti 0-255 za svaki kanal.
Korak 6: Više delova u jednom paragrafu
Jedan odlomak može da sadrži više delova sa različitim formatiranjem. Dodajte novi Portion odlomku Portions kolekcija:
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);Uobičajeni problemi i rešenja
Tekst se prikazuje crno iako je boja postavljena
Osigurajte FillFormat.FillType = FillType.Solid se postavlja pre dodele boje. Bez postavljanja tipa popunjavanja, promena boje možda neće imati efekta.
NullableBool.True vs true
PortionFormat.FontBold očekuje NullableBool.True, a ne C# true. Dodeljivanje C# true neće se kompajlirati jer su tipovi nekompatibilni.
Font se ne pojavljuje u sačuvanoj datoteci
The LatinFont property postavlja Latin font family. Ako nije postavljeno, koristi se font prezentacione teme. Prilagođeni fontovi moraju biti ugrađeni ili dostupni na mašini za pregled.
Često postavljana pitanja
Kako da promenim porodicu fonta?
Postavi PortionFormat.LatinFont:
fmt.LatinFont = new FontData("Arial");FontData prihvata ime font family kao string.
Kako da postavim poravnanje pasusa?
Koristi ParagraphFormat.Alignment:
tf.Paragraphs[0].ParagraphFormat.Alignment = TextAlignment.Center;Podržane vrednosti: Left, Center, Right, Justify.
Kako da postavim razmak između redova?
Koristi ParagraphFormat.SpaceBefore (tačke pre pasusa) ili ParagraphFormat.SpaceAfter (tačke posle pasusa):
tf.Paragraphs[0].ParagraphFormat.SpaceBefore = 12; // 12pt before
tf.Paragraphs[0].ParagraphFormat.SpaceAfter = 6; // 6pt after