Kako formatirati tekst u .NET

Kako formatirati tekst u .NET

Aspose.Slides FOSS for .NET provides fine-grained text formatting through the PortionFormat klasa. A Portion je najmanja neovisna jedinica teksta; ona se mapira na jedan formatiranje unutar odlomka. Ovaj vodič pokazuje kako primijeniti 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.Foss

Korak 2: Dodajte oblik s tekstualnim okvirom

Prije formatiranja teksta, oblik mora sadržavati TextFrame. Upotrijebite shape.AddTextFrame() za stvaranje jednog.

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 TextFrameu

shape.AddTextFrame() vraća TextFrame objekt. Također ga možete dohvatiti kasnije putem shape.TextFrame.

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

A TextFrame sadrži popis Paragraph objekata (tf.Paragraphs). Svaki Paragraph sadrži Portion objekata (paragraph.Portions).


Korak 4: Primijenite podebljano i kurziv formatiranje

Upotrijebite PortionFormat.FontBold i PortionFormat.FontItalic. Ova svojstva prihvaćaju NullableBool.True, NullableBool.False, ili NullableBool.NotDefined (naslijedi od 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);

Korak 5: Postavite veličinu fonta i boju

Postavi PortionFormat.FontHeight za veličinu (u točkama) i upotrijebi 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) prima vrijednosti 0-255 za svaki kanal.


Korak 6: Više odjeljaka u jednom odlomku

Jedan odlomak može sadržavati više dijelova s različitim formatiranjem. Dodajte novi Portion u odlomak Portions zbirku:

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 rješenja

Tekst ostaje crn iako je boja postavljena

Osigurajte FillFormat.FillType = FillType.Solid je postavljeno prije dodjele boje. Bez postavljanja vrste ispune, promjena boje možda neće imati učinka.

NullableBool.True vs true

PortionFormat.FontBold očekuje NullableBool.True, a ne C# true. Dodjeljivanje C# true neće se kompilirati jer su tipovi nekompatibilni.

Font se ne pojavljuje u spremljenoj datoteci

The LatinFont svojstvo postavlja latinsku obitelj fontova. Ako nije postavljeno, koristi se font teme prezentacije. Prilagođeni fontovi moraju biti ugrađeni ili dostupni na računalu za pregled.


Često postavljana pitanja

Kako promijeniti obitelj fonta?

Postavi PortionFormat.LatinFont:

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

FontData prima naziv obitelji fonta kao string.

Kako postaviti poravnanje odlomka?

Koristite ParagraphFormat.Alignment:

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

Podržane vrijednosti: Left, Center, Right, Justify.

Kako postaviti razmak između redaka?

Koristite ParagraphFormat.SpaceBefore (točke prije odlomka) ili ParagraphFormat.SpaceAfter točke nakon odlomka:

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

Vidi također

 Hrvatski