Jak formátovat text v .NET
Aspose.Slides FOSS for .NET provides fine-grained text formatting through the PortionFormat třída. A Portion je nejmenší nezávislá jednotka textu; mapuje se na jeden formátovací běh v odstavci. Tento průvodce ukazuje, jak použít tučné, kurzívu, velikost písma a barevné formátování na text v prezentaci.
Průvodce krok za krokem
Krok 1: Nainstalujte balíček
dotnet add package Aspose.Slides.FossKrok 2: Přidejte tvar s textovým rámcem
Před formátováním textu musí tvar obsahovat TextFrame. Použijte shape.AddTextFrame() k vytvoření jednoho.
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);Krok 3: Získejte přístup k TextFrame
shape.AddTextFrame() vrací TextFrame objekt. Můžete jej také později získat pomocí shape.TextFrame.
var tf = shape.TextFrame; // if the frame already exists
var tf = shape.AddTextFrame(""); // creates a new frameA TextFrame obsahuje seznam Paragraph objektů (tf.Paragraphs). Každý Paragraph obsahuje Portion objektů (paragraph.Portions).
Krok 4: Použijte tučné a kurzívní formátování
Použijte PortionFormat.FontBold a PortionFormat.FontItalic. Tyto vlastnosti přijímají NullableBool.True, NullableBool.False, nebo NullableBool.NotDefined (zdědit z masteru).
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);Krok 5: Nastavte velikost písma a barvu
Nastavit PortionFormat.FontHeight pro velikost (v bodech) a použijte FillFormat pro barvu.
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) přijímá hodnoty 0‑255 pro každý kanál.
Krok 6: Více částí v jednom odstavci
Jeden odstavec může obsahovat více částí s různým formátováním. Přidejte nový Portion do odstavce Portions kolekce:
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);Časté problémy a opravy
Text se zobrazuje černě i po nastavení barvy
Zajistěte FillFormat.FillType = FillType.Solid je nastaveno před přiřazením barvy. Bez nastavení typu výplně se změna barvy nemusí projevit.
NullableBool.True vs true
PortionFormat.FontBold očekává NullableBool.True, nikoli C# true. Přiřazení C# true nebude kompilovat, protože typy jsou nekompatibilní.
Písmo se v uloženém souboru neobjeví
Tento LatinFont vlastnost nastavuje latinskou rodinu písma. Pokud není nastavena, použije se písmo motivu prezentace. Vlastní písma musí být vložena nebo dostupná na zobrazovacím počítači.
Často kladené otázky
Jak změním rodinu písma?
Nastavte PortionFormat.LatinFont:
fmt.LatinFont = new FontData("Arial");FontData přijímá název rodiny písma jako řetězec.
Jak nastavit zarovnání odstavce?
Použít ParagraphFormat.Alignment:
tf.Paragraphs[0].ParagraphFormat.Alignment = TextAlignment.Center;Podporované hodnoty: Left, Center, Right, Justify.
Jak nastavit řádkování?
Použít ParagraphFormat.SpaceBefore (tečky před odstavcem) nebo ParagraphFormat.SpaceAfter body po odstavci:
tf.Paragraphs[0].ParagraphFormat.SpaceBefore = 12; // 12pt before
tf.Paragraphs[0].ParagraphFormat.SpaceAfter = 6; // 6pt after