Hvordan formatere tekst i .NET

Hvordan formatere tekst i .NET

Aspose.Slides FOSS for .NET provides fine-grained text formatting through the PortionFormat klasse. En Portion er den minste uavhengige enheten av tekst; den tilsvarer en enkelt formateringskjøring innenfor et avsnitt. Denne guiden viser hvordan du bruker fet, kursiv, skriftstørrelse og fargeformatering på tekst i en presentasjon.

Steg-for-steg guide

Steg 1: Installer pakken

dotnet add package Aspose.Slides.Foss

Steg 2: Legg til en form med en tekstramme

Før du formaterer tekst, må en form inneholde en TextFrame. Bruk shape.AddTextFrame() for å opprette en.

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

Steg 3: Få tilgang til TextFrame

shape.AddTextFrame() returnerer TextFrame objektet. Du kan også hente det senere via shape.TextFrame.

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

En TextFrame inneholder en liste over Paragraph objekter (tf.Paragraphs). Hver Paragraph inneholder Portion objekter (paragraph.Portions).


Steg 4: Bruk fet og kursiv formatering

Bruk PortionFormat.FontBold og PortionFormat.FontItalic. Disse egenskapene godtar NullableBool.True, NullableBool.False, eller NullableBool.NotDefined (arve fra 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);

Steg 5: Angi skriftstørrelse og farge

Sett PortionFormat.FontHeight for størrelse (i punkter) og bruk FillFormat for farge.

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) godtar verdier 0-255 for hver kanal.


Steg 6: Flere deler i ett avsnitt

Et enkelt avsnitt kan inneholde flere deler med forskjellig formatering. Legg til en ny Portion til et avsnitts Portions samling:

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

Vanlige problemer og løsninger

Teksten vises svart selv etter at fargen er satt

Sørg for FillFormat.FillType = FillType.Solid er satt før du tilordner fargen. Uten å sette fylltypen, kan fargeendringen ha ingen effekt.

NullableBool.True vs true

PortionFormat.FontBold forventer NullableBool.True, ikke C# true. Tilordning av C# true vil ikke kompilere fordi typene er inkompatible.

Font vises ikke i den lagrede filen

Den LatinFont egenskapen angir den latinske skrifttypen. Hvis den ikke er angitt, brukes presentasjonstemaets skrifttype. Tilpassede skrifttyper må være innebygd eller tilgjengelige på visningsmaskinen.


Ofte stilte spørsmål

Hvordan endrer jeg skriftfamilien?

Angi PortionFormat.LatinFont:

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

FontData godtar skrifttypenavnet som en streng.

Hvordan setter jeg avsnittsjustering?

Bruk ParagraphFormat.Alignment:

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

Støttede verdier: Left, Center, Right, Justify.

Hvordan setter jeg linjeavstand?

Bruk ParagraphFormat.SpaceBefore (punkter før avsnitt) eller ParagraphFormat.SpaceAfter poeng etter avsnitt:

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

Se også

 Norsk