Hvordan formatere tekst i .NET

Hvordan formatere tekst i .NET

Aspose.Slides FOSS for .NET gir finjustert tekstformatering gjennom PortionFormat-klassen. En Portion er den minste uavhengige enheten av tekst; den tilsvarer en enkelt formateringssekvens i et avsnitt. Denne guiden viser hvordan du bruker fet, kursiv, skriftstørrelse og fargeformatering på tekst i en presentasjon.

Trinn-for-trinn guide

Steg 1: Installer pakken

dotnet add package Aspose.Slides.Foss

Steg 2: Legg til en form med en tekstboks

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

Trinn 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 (arver 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);

Trinn 5: Angi skriftstørrelse og farge

Angi 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) aksepterer 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 i avsnittets 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

Tekst vises svart selv etter å ha satt farge

Sørg for at 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. Å tildele C# true vil ikke kompilere fordi typene er inkompatible.

Skrift vises ikke i den lagrede filen

LatinFont-egenskapen angir den latinske skrifttypefamilien. 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 skrifttypefamilien?

Sett PortionFormat.LatinFont:

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

FontData godtar fontfamilienavnet 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 (punkter etter avsnitt):

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

Se også

 Norsk