Sådan formaterer du tekst i .NET

Sådan formaterer du tekst i .NET

Aspose.Slides FOSS for .NET giver finmasket tekstformatering via PortionFormat-klassen. En Portion er den mindste uafhængige enhed af tekst; den svarer til en enkelt formateringssekvens inden for et afsnit. Denne vejledning viser, hvordan man anvender fed, kursiv, skriftstørrelse og farveformatering på tekst i en præsentation.

Trin-for-trin guide

Trin 1: Installer pakken

dotnet add package Aspose.Slides.Foss

Trin 2: Tilføj en form med en tekstramme

Før du formaterer tekst, skal en form indeholde en TextFrame. Brug shape.AddTextFrame() til at oprette 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);

Trin 3: Få adgang 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 indeholder en liste af Paragraph objekter (tf.Paragraphs). Hvert Paragraph indeholder Portion objekter (paragraph.Portions).


Trin 4: Anvend fed og kursiv formatering

Brug PortionFormat.FontBold og PortionFormat.FontItalic. Disse egenskaber accepterer 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);

Trin 5: Indstil skriftstørrelse og farve

Indstil PortionFormat.FontHeight for størrelse (i punkter) og brug FillFormat til farve.

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) accepterer værdier 0-255 for hver kanal.


Trin 6: Flere dele i ét afsnit

Et enkelt afsnit kan indeholde flere dele med forskellig formatering. Tilføj en ny Portion til et afsnits 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);

Almindelige problemer og rettelser

Tekst vises sort, selv efter at farven er indstillet

Sørg for, at FillFormat.FillType = FillType.Solid er indstillet, før du tildeler farven. Uden at indstille fyldtypen kan farveændringen muligvis ikke have nogen effekt.

NullableBool.True vs true

PortionFormat.FontBold forventer NullableBool.True, ikke C# true. Tildeling af C# true vil ikke kompilere, fordi typerne er inkompatible.

Skrift vises ikke i den gemte fil

LatinFont-egenskaben angiver den latinske skrifttypefamilie. Hvis den ikke er angivet, bruges præsentationstemaets skrifttype. Tilpassede skrifttyper skal indlejres eller være tilgængelige på den maskine, der viser præsentationen.


Ofte stillede spørgsmål

Hvordan ændrer jeg skrifttypefamilien?

Indstil PortionFormat.LatinFont:

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

FontData accepterer skrifttypefamilienavnet som en streng.

Hvordan indstiller jeg afsnitsjustering?

Brug ParagraphFormat.Alignment:

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

Understøttede værdier: Left, Center, Right, Justify.

Hvordan indstiller jeg linjeafstand?

Brug ParagraphFormat.SpaceBefore (punkter før afsnit) eller ParagraphFormat.SpaceAfter (punkter efter afsnit):

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

Se også

 Dansk