Kaip formatuoti tekstą .NET

Kaip formatuoti tekstą .NET

Aspose.Slides FOSS for .NET provides fine-grained text formatting through the PortionFormat klasė. A Portion yra mažiausia nepriklausoma teksto vienetas; jis atitinka vieną formatavimo seką pastraipoje. Ši vadovas rodo, kaip pritaikyti bold, italic, font size ir color formatavimą tekstui pristatyme.

Žingsnis po žingsnio vadovas

Žingsnis 1: Įdiekite paketą

dotnet add package Aspose.Slides.Foss

Žingsnis 2: Pridėkite formą su teksto rėmeliu

Prieš formatuojant tekstą, forma turi turėti TextFrame. Naudokite shape.AddTextFrame() sukurti vieną.

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);

Žingsnis 3: Pasiekite TextFrame

shape.AddTextFrame() grąžina TextFrame objektą. Taip pat galite jį vėliau gauti per shape.TextFrame.

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

A TextFrame turi sąrašą Paragraph objektų (tf.Paragraphs). Kiekvienas Paragraph turi Portion objektų (paragraph.Portions).


Žingsnis 4: Pridėkite pusjuodį ir kursyvo formatavimą

Naudokite PortionFormat.FontBold ir PortionFormat.FontItalic. Šios savybės priima NullableBool.True, NullableBool.False, arba NullableBool.NotDefined (paveldėti iš 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);

Žingsnis 5: Nustatykite šrifto dydį ir spalvą

Nustatyti PortionFormat.FontHeight dydžiui (taškais) ir naudoti FillFormat spalvai.

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) priima reikšmes 0-255 kiekvienam kanalui.


Žingsnis 6: Keli Portion vienoje pastraipoje

Vienas pastraipa gali turėti kelias dalis su skirtingu formatavimu. Pridėkite naują Portion į pastraipos Portions kolekciją:

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);

Dažnos problemos ir sprendimai

Tekstas lieka juodas net po spalvos nustatymo

Įsitikinkite FillFormat.FillType = FillType.Solid yra nustatytas prieš priskiriant spalvą. Nustatant užpildymo tipą, spalvos pakeitimas gali neturėti jokio poveikio.

NullableBool.True prieš true

PortionFormat.FontBold tikisi NullableBool.True, ne C# true. Priskiriant C# true nebus kompiliuojama, nes tipai nesuderinami.

Šriftas neatsiranda įrašytame faile

Ši LatinFont savybė nustato lotynišką šriftų šeimą. Jei nenustatyta, naudojamas pristatymo temos šriftas. Pasirinktiniai šriftai turi būti įterpti arba prieinami peržiūros įrenginyje.


Dažnai užduodami klausimai

Kaip pakeisti šrifto šeimą?

Nustatyti PortionFormat.LatinFont:

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

FontData priima šriftų šeimos pavadinimą kaip eilutę.

Kaip nustatyti pastraipos lygiavimą?

Naudoti ParagraphFormat.Alignment:

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

Palaikomos reikšmės: Left, Center, Right, Justify.

Kaip nustatyti eilučių tarpą?

Naudoti ParagraphFormat.SpaceBefore (taškai prieš pastraipą) arba ParagraphFormat.SpaceAfter taškai po pastraipos:

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

Žr. taip pat

 Lietuvių