Jak formátovat text v .NET

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.Foss

Krok 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 frame

A 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

Viz také

 Čeština