Präsentationstext formatieren in .NET
Übersicht
Dieser Artikel zeigt, wie man Text in PowerPoint‑ und OpenDocument‑Präsentationen mit Aspose.Slides für .NET formatiert. Er behandelt Hintergrundfarben, Transparenz, Zeichenabstand, Schriftarteigenschaften, Drehung, Absatzabstand, Autofit‑Verhalten, Textausrichtung, Tabstopps und Spracheinstellungen.
In den nachfolgenden Beispielen verwenden wir die Datei „sample.pptx“, die auf der ersten Folie ein einzelnes Textfeld mit folgendem Text enthält:

Um wörtlichen Text oder reguläre Ausdrücke zu finden und zu markieren, siehe Text suchen und ersetzen.
Texthintergrundfarbe festlegen
Verwenden Sie IParagraphFormat.DefaultPortionFormat, um die Standard‑Hervorhebungsfarbe für einen Absatz festzulegen, oder IBasePortionFormat.HighlightColor für einzelne Textabschnitte.
Der folgende Code demonstriert, wie die Hintergrundfarbe für den gesamten Absatz gesetzt wird:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Legen Sie die Hervorhebungsfarbe für den gesamten Absatz fest.
paragraph.ParagraphFormat.DefaultPortionFormat.HighlightColor.Color = Color.LightGray;
presentation.Save("gray_paragraph.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Der nachstehende Code zeigt, wie die Hintergrundfarbe für Textabschnitte mit fetter Schrift festgelegt wird:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
foreach (var portion in paragraph.Portions)
{
if (portion.PortionFormat.GetEffective().FontBold)
{
// Legen Sie die Hervorhebungsfarbe für den Textabschnitt fest.
portion.PortionFormat.HighlightColor.Color = Color.LightGray;
}
}
presentation.Save("gray_text_portions.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Textabsätze ausrichten
Verwenden Sie IParagraphFormat.Alignment, um die Absatzausrichtung innerhalb eines Textfeldes festzulegen. Der Wert kann z. B. zentriert, linksbündig, rechtsbündig, Blocksatz usw. sein.
Der folgende Code richtet den Absatz zentriert aus:
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Setzen Sie die Ausrichtung des Absatzes auf zentriert.
paragraph.ParagraphFormat.Alignment = TextAlignment.Center;
presentation.Save("aligned_paragraph.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Transparenz für Text festlegen
Die Texttransparenz wird über die Alpha‑Komponente der Farbe gesteuert, die IBasePortionFormat.FillFormat zugewiesen wird. In den nachfolgenden Beispielen ist alpha = 50 ein ARGB‑Alpha‑Wert im Bereich 0–255, nicht ein Transparenz‑Prozentsatz.
Der folgende Code wendet Transparenz auf den gesamten Absatz an:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
int alpha = 50;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Setzen Sie die Füllfarbe des Textes auf eine transparente Farbe.
paragraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
paragraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(alpha, Color.Black);
presentation.Save("transparent_paragraph.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Der folgende Code wendet Transparenz auf Textabschnitte mit fetter Schrift an:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
int alpha = 50;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
foreach (var portion in paragraph.Portions)
{
if (portion.PortionFormat.GetEffective().FontBold)
{
// Setzen Sie die Transparenz des Textabschnitts.
portion.PortionFormat.FillFormat.FillType = FillType.Solid;
portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(alpha, Color.Black);
}
}
presentation.Save("transparent_text_portions.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Zeichenabstand für Text festlegen
Verwenden Sie IBasePortionFormat.Spacing, um den Abstand zwischen Zeichen in einem Textfeld zu vergrößern oder zu verkleinern.
Der folgende C#‑Code zeigt, wie der Zeichenabstand im gesamten Absatz vergrößert wird:
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Hinweis: Verwenden Sie negative Werte, um den Zeichenabstand zu komprimieren.
paragraph.ParagraphFormat.DefaultPortionFormat.Spacing = 3; // Zeichenabstand vergrößern.
presentation.Save("character_spacing_in_paragraph.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Der nachstehende Code demonstriert, wie der Zeichenabstand in Textabschnitten mit fetter Schrift vergrößert wird:
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
foreach (var portion in paragraph.Portions)
{
if (portion.PortionFormat.GetEffective().FontBold)
{
// Hinweis: Verwenden Sie negative Werte, um den Zeichenabstand zu komprimieren.
portion.PortionFormat.Spacing = 3; // Zeichenabstand vergrößern.
}
}
presentation.Save("character_spacing_in_text_portions.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Kerning für bestimmte Schriften deaktivieren
In manchen Fällen kann Text, der von Aspose.Slides gerendert wird, etwas enger wirken als derselbe Text in PowerPoint. Das kann auftreten, weil PowerPoint Kerning‑Daten für bestimmte Schriften ignoriert, selbst wenn die Schrift gültige Kerning‑Informationen enthält und Kerning in den PowerPoint‑Einstellungen aktiviert ist.
Um das Rendering in solchen Fällen PowerPoint‑ähnlicher zu machen, können Sie Kerning für Textabschnitte deaktivieren, die die betroffene Schrift verwenden. Setzen Sie IBasePortionFormat.KerningMinimalSize auf einen Wert, der deutlich größer ist als die eigentliche Schriftgröße:
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("presentation.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var targetFont = "Roboto";
foreach (var paragraph in autoShape.TextFrame.Paragraphs)
{
foreach (var portion in paragraph.Portions)
{
if ((portion.PortionFormat.LatinFont != null &&
portion.PortionFormat.LatinFont.FontName == targetFont) ||
(portion.PortionFormat.EastAsianFont != null &&
portion.PortionFormat.EastAsianFont.FontName == targetFont) ||
(portion.PortionFormat.ComplexScriptFont != null &&
portion.PortionFormat.ComplexScriptFont.FontName == targetFont))
{
portion.PortionFormat.KerningMinimalSize = 100;
}
}
}
presentation.Save("output.pptx", SaveFormat.Pptx);
}
Diese Einstellung verhindert, dass Kerning auf die entsprechenden Textabschnitte angewendet wird, und kann helfen, das Rendering von Aspose.Slides an die visuelle Ausgabe von PowerPoint für betroffene Schriften anzupassen.
Schriftarteigenschaften von Text verwalten
Schriftarteigenschaften können auf Absatzebene über IParagraphFormat.DefaultPortionFormat oder auf einzelne Abschnitte über IPortionFormat festgelegt werden.
Der folgende Code legt die Schrift und den Textstil für den gesamten Absatz fest: Er wendet Schriftgröße, Fett, Kursiv, gepunktete Unterstreichung und die Schriftart Times New Roman auf alle Abschnitte im Absatz an:
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Setzen Sie die Schriftarteigenschaften für den Absatz.
paragraph.ParagraphFormat.DefaultPortionFormat.FontHeight = 12;
paragraph.ParagraphFormat.DefaultPortionFormat.FontBold = NullableBool.True;
paragraph.ParagraphFormat.DefaultPortionFormat.FontItalic = NullableBool.True;
paragraph.ParagraphFormat.DefaultPortionFormat.FontUnderline = TextUnderlineType.Dotted;
paragraph.ParagraphFormat.DefaultPortionFormat.LatinFont = new FontData("Times New Roman");
presentation.Save("font_properties_for_paragraph.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Der nachstehende Code wendet ähnliche Eigenschaften auf Textabschnitte mit fetter Schrift an:
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
foreach (var portion in paragraph.Portions)
{
if (portion.PortionFormat.GetEffective().FontBold)
{
// Setzen Sie die Schriftarteigenschaften für den Textabschnitt.
portion.PortionFormat.FontHeight = 13;
portion.PortionFormat.FontItalic = NullableBool.True;
portion.PortionFormat.FontUnderline = TextUnderlineType.Dotted;
portion.PortionFormat.LatinFont = new FontData("Times New Roman");
}
}
presentation.Save("font_properties_for_text_portions.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Textdrehung festlegen
Verwenden Sie ITextFrameFormat.TextVerticalType, um eine vordefinierte Textausrichtung innerhalb einer Form festzulegen.
Der folgende Code setzt die Textrichtung in der Form auf Vertical270, wodurch der Text 90 Grad gegen den Uhrzeigersinn gedreht wird:
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
autoShape.TextFrame.TextFrameFormat.TextVerticalType = TextVerticalType.Vertical270;
presentation.Save("text_rotation.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Benutzerdefinierte Drehung für Textfelder festlegen
Verwenden Sie ITextFrameFormat.RotationAngle, um einen benutzerdefinierten Drehwinkel für ein ITextFrame festzulegen.
Der nachstehende Code dreht das Textfeld innerhalb der Form um 3 Grad im Uhrzeigersinn:
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
autoShape.TextFrame.TextFrameFormat.RotationAngle = 3;
presentation.Save("custom_text_rotation.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Zeilenabstand von Absätzen festlegen
Aspose.Slides stellt IParagraphFormat.SpaceAfter, IParagraphFormat.SpaceBefore und IParagraphFormat.SpaceWithin bereit, um den Absatzabstand zu steuern. Diese Eigenschaften werden wie folgt verwendet:
- Verwenden Sie einen positiven Wert, um den Zeilenabstand als Prozentsatz der Zeilenhöhe anzugeben.
- Verwenden Sie einen negativen Wert, um den Zeilenabstand in Punkten anzugeben.
Der folgende Code legt den Zeilenabstand innerhalb des Absatzes fest:
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
paragraph.ParagraphFormat.SpaceWithin = 200;
presentation.Save("line_spacing.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Autofit‑Typ für Textfelder festlegen
ITextFrameFormat.AutofitType bestimmt, wie sich Text verhält, wenn er die Grenzen seines Containers überschreitet. Nutzen Sie es, um zu steuern, ob der Text schrumpft, überläuft oder die Form automatisch resized.
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
autoShape.TextFrame.TextFrameFormat.AutofitType = TextAutofitType.Shape;
presentation.Save("autofit_type.pptx", SaveFormat.Pptx);
}
Anker von Textfeldern festlegen
ITextFrameFormat.AnchoringType definiert, wie Text vertikal innerhalb einer Form positioniert wird, z. B. oben, mittig oder unten.
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
autoShape.TextFrame.TextFrameFormat.AnchoringType = TextAnchorType.Bottom;
presentation.Save("text_anchor.pptx", SaveFormat.Pptx);
}
Texttabulation festlegen
Verwenden Sie IParagraphFormat.DefaultTabSize und IParagraphFormat.Tabs, um Tabstopps in einem Absatz zu konfigurieren.
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
paragraph.ParagraphFormat.DefaultTabSize = 100;
paragraph.ParagraphFormat.Tabs.Add(30, TabAlignment.Left);
presentation.Save("paragraph_tabs.pptx", SaveFormat.Pptx);
}
Das Ergebnis:

Rechtschreibsprache festlegen
Aspose.Slides stellt IBasePortionFormat.LanguageId bereit, mit dem Sie die Rechtschreibsprache für einen Textabschnitt festlegen können. Die Rechtschreibsprache bestimmt, welche Sprache für Rechtschreib‑ und Grammatikprüfungen in PowerPoint verwendet wird.
Der folgende Code zeigt, wie die Rechtschreibsprache für einen Textabschnitt festgelegt wird:
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation("presentation.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
paragraph.Portions.Clear();
var font = new FontData("SimSun");
var textPortion = new Portion();
textPortion.PortionFormat.ComplexScriptFont = font;
textPortion.PortionFormat.EastAsianFont = font;
textPortion.PortionFormat.LatinFont = font;
// Setzen Sie die Id einer Rechtschreibsprache.
textPortion.PortionFormat.LanguageId = "zh-CN";
textPortion.Text = "1。";
paragraph.Portions.Add(textPortion);
presentation.Save("proofing_language.pptx", SaveFormat.Pptx);
}
Standard‑Sprache festlegen
Verwenden Sie LoadOptions.DefaultTextLanguage, um die Standardsprache für beim Laden oder Erstellen einer Präsentation erzeugten Text festzulegen.
using Aspose.Slides;
var loadOptions = new LoadOptions();
loadOptions.DefaultTextLanguage = "en-US";
using (var presentation = new Presentation(loadOptions))
{
var slide = presentation.Slides[0];
// Fügen Sie ein neues Rechteck-Shape mit Text hinzu.
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 20, 20, 150, 50);
shape.TextFrame.Text = "Sample text";
// Prüfen Sie die Sprache des ersten Abschnitts.
var portion = shape.TextFrame.Paragraphs[0].Portions[0];
Console.WriteLine(portion.PortionFormat.LanguageId);
}
Standard‑Textstil festlegen
Um die Standard‑Textformatierung auf Präsentationsebene anzuwenden, verwenden Sie IPresentation.DefaultTextStyle.
Der folgende Code legt für alle Texte in einer neuen Präsentation eine Standardschriftart fett mit einer Größe von 14 pt fest.
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation())
{
// Erhalte das Absatzformat der obersten Ebene.
var paragraphFormat = presentation.DefaultTextStyle.GetLevel(0);
if (paragraphFormat != null)
{
paragraphFormat.DefaultPortionFormat.FontHeight = 14;
paragraphFormat.DefaultPortionFormat.FontBold = NullableBool.True;
}
presentation.Save("default_text_style.pptx", SaveFormat.Pptx);
}
Text mit dem Großschrifts‑Effekt extrahieren
In PowerPoint sorgt der Schriftarteffekt All Caps dafür, dass Text auf der Folie in Großbuchstaben angezeigt wird, obwohl er ursprünglich klein geschrieben wurde. Wenn Sie einen solchen Textabschnitt mit Aspose.Slides auslesen, liefert die Bibliothek den Text exakt so zurück, wie er eingegeben wurde. Um den angezeigten Text zu erhalten, prüfen Sie TextCapType und konvertieren Sie die zurückgegebene Zeichenkette in Großbuchstaben, wenn der Wert All ist.
Angenommen, wir haben das folgende Textfeld auf der ersten Folie der Datei sample2.pptx.

Der nachstehende Code extrahiert den Text mit angewendetem All Caps‑Effekt:
using Aspose.Slides;
using (var presentation = new Presentation("sample2.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var textPortion = autoShape.TextFrame.Paragraphs[0].Portions[0];
Console.WriteLine($"Original text: {textPortion.Text}");
var textFormat = textPortion.PortionFormat.GetEffective();
if (textFormat.TextCapType == TextCapType.All)
{
var text = textPortion.Text.ToUpper();
Console.WriteLine($"All-Caps effect: {text}");
}
}
Ausgabe:
Original text: Hello, Aspose!
All-Caps effect: HELLO, ASPOSE!
FAQ
Wie kann man Text in einer Tabelle auf einer Folie ändern?
Um Text in einer Tabelle auf einer Folie zu ändern, verwenden Sie ITable. Durchlaufen Sie die Zellen und aktualisieren Sie jede Zelle über ICell.TextFrame sowie die Absatzformatierung über IParagraph.ParagraphFormat.
Wie kann man einem Text in einer PowerPoint‑Folie eine Farbverlauf‑Füllung zuweisen?
Um einem Text einen Farbverlauf zuzuweisen, verwenden Sie IBasePortionFormat.FillFormat. Setzen Sie IFillFormat.FillType auf FillType.Gradient und konfigurieren Sie die Farbverlaufsstopps, Richtung und Transparenz.