Hur man formaterar text i .NET
Aspose.Slides FOSS for .NET provides fine-grained text formatting through the PortionFormat klass. En Portion är den minsta oberoende enheten av text; den motsvarar ett enda formateringsintervall inom ett stycke. Denna guide visar hur man applicerar fetstil, kursiv, teckenstorlek och färgformatering på text i en presentation.
Steg-för-steg-guide
Steg 1: Installera paketet
dotnet add package Aspose.Slides.FossSteg 2: Lägg till en form med en textram
Innan du formaterar text måste en form innehålla en TextFrame. Använd shape.AddTextFrame() för att skapa 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: Åtkomst till TextFrame
shape.AddTextFrame() returnerar TextFrame objektet. Du kan också hämta det senare via shape.TextFrame.
var tf = shape.TextFrame; // if the frame already exists
var tf = shape.AddTextFrame(""); // creates a new frameEn TextFrame innehåller en lista med Paragraph objekt (tf.Paragraphs). Varje Paragraph innehåller Portion objekt (paragraph.Portions).
Steg 4: Applicera fetstil och kursiv formatering
Använd PortionFormat.FontBold och PortionFormat.FontItalic. Dessa egenskaper accepterar NullableBool.True, NullableBool.False, eller NullableBool.NotDefined (ärva från 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: Ställ in teckenstorlek och färg
Ange PortionFormat.FontHeight för storlek (i punkter) och använd FillFormat för färg.
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) accepterar värden 0-255 för varje kanal.
Steg 6: Flera portioner i ett stycke
Ett enda stycke kan innehålla flera delar med olika formatering. Lägg till en ny Portion till ett stycke 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);Vanliga problem och lösningar
Texten visas svart även efter att färgen har ställts in
Säkerställ FillFormat.FillType = FillType.Solid är inställd innan färgen tilldelas. Utan att ange fyllningstypen kan färgändringen sakna effekt.
NullableBool.True vs true
PortionFormat.FontBold förväntar sig NullableBool.True, inte C# true. Tilldelning av C# true kommer inte att kompilera eftersom typerna är inkompatibla.
Typsnitt visas inte i den sparade filen
Den LatinFont egenskapen anger den latinska teckensnittsfamiljen. Om den inte är inställd används presentationens temateckensnitt. Anpassade teckensnitt måste vara inbäddade eller tillgängliga på visningsdatorn.
Vanliga frågor
Hur ändrar jag typsnittsfamiljen?
Ange PortionFormat.LatinFont:
fmt.LatinFont = new FontData("Arial");FontData accepterar teckensnittsfamiljens namn som en sträng.
Hur ställer jag in styckejustering?
Använd ParagraphFormat.Alignment:
tf.Paragraphs[0].ParagraphFormat.Alignment = TextAlignment.Center;Stödda värden: Left, Center, Right, Justify.
Hur ställer jag in radavstånd?
Använd ParagraphFormat.SpaceBefore (punkter före stycke) eller ParagraphFormat.SpaceAfter (punkter efter stycke):
tf.Paragraphs[0].ParagraphFormat.SpaceBefore = 12; // 12pt before
tf.Paragraphs[0].ParagraphFormat.SpaceAfter = 6; // 6pt after