Jak formátovat text v .NET

Jak formátovat text v .NET

Aspose.Slides FOSS pro .NET poskytuje jemné formátování textu pomocí třídy PortionFormat. Portion je nejmenší nezávislá jednotka textu; mapuje se na jediný formátovací běh v odstavci. Tento průvodce ukazuje, jak aplikovat formátování tučného, kurzívního, velikosti písma a barvy na text v prezentaci.

Krok za krokem průvodce

Krok 1: Nainstalujte balíček

dotnet add package Aspose.Slides.Foss

Krok 2: Přidat tvar s textovým rámečkem

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: Přístup k TextFrame

shape.AddTextFrame() vrací objekt TextFrame. 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

TextFrame obsahuje seznam Paragraph objektů (tf.Paragraphs).
Každý Paragraph obsahuje Portion objektů (paragraph.Portions).


Krok 4: Použít 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

Nastavte 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 kolekce Portions odstavce:

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

Ujistěte se, že je FillFormat.FillType = FillType.Solid nastaveno před přiřazením barvy. Bez nastavení typu výplně může změna barvy nemít žádný efekt.

NullableBool.True vs true

PortionFormat.FontBold očekává NullableBool.True, ne C# true. Přiřazení C# true se nepodaří zkompilovat, protože typy nejsou kompatibilní.

Písmo se v uloženém souboru neobjevuje

Vlastnost LatinFont nastavuje latinskou rodinu fontů. Pokud není nastavena, použije se písmo motivu prezentace. Vlastní fonty musí být vloženy nebo dostupné na zobrazovacím počítači.


Často kladené otázky

Jak změním rodinu písma?

Nastavit 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žijte ParagraphFormat.Alignment:

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

Podporované hodnoty: Left, Center, Right, Justify.

Jak nastavit řádkování?

Použijte ParagraphFormat.SpaceBefore (body 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