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.FossSteg 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 frameEn 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