Prezentáció szövegének formázása .NET-ben
Áttekintés
Ez a cikk bemutatja, hogyan lehet formázni a szöveget PowerPoint és OpenDocument prezentációkban az Aspose.Slides for .NET segítségével. Kitér a háttérszínekre, átlátszóságra, karaktertávolságra, betűtulajdonságokra, forgatásra, bekezdés távolságokra, automatikus illesztés viselkedésére, szöveg rögzítésére, tabulátorokra és nyelvi beállításokra.
Az alábbi példákban a „sample.pptx” nevű fájlt használjuk, amely az első dián egyetlen szövegdobozt tartalmaz a következő szöveggel:

A szó szerinti szöveg vagy reguláris kifejezés egyezések megtalálásához és kiemeléséhez lásd a Szöveg keresése és cseréje oldalt.
Szöveg háttérszín beállítása
Használja a IParagraphFormat.DefaultPortionFormat metódust a bekezdés alapértelmezett kiemelési színének beállításához, vagy az IBasePortionFormat.HighlightColor metódust az egyes szövegrészekhez.
Az alábbi kódrészlet bemutatja, hogyan állítható be a teljes bekezdés háttérszíne:
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];
// Állítsa be a teljes bekezdés kiemelési színét.
paragraph.ParagraphFormat.DefaultPortionFormat.HighlightColor.Color = Color.LightGray;
presentation.Save("gray_paragraph.pptx", SaveFormat.Pptx);
}
Az eredmény:

Az alábbi kódrészlet bemutatja, hogyan állítható be a félkövér betűkkel rendelkező szövegrészek háttérszíne:
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)
{
// Állítsa be a szövegrész kiemelési színét.
portion.PortionFormat.HighlightColor.Color = Color.LightGray;
}
}
presentation.Save("gray_text_portions.pptx", SaveFormat.Pptx);
}
Az eredmény:

Szöveg bekezdések igazítása
Használja a IParagraphFormat.Alignment metódust a bekezdés igazításának beállításához egy szövegdobozon belül. Az érték lehet középre, balra, jobbra, sorkizárt stb.
Az alábbi kódrészlet bemutatja, hogyan igazítható a bekezdés középre:
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];
// Állítsa be a bekezdés igazítását középre.
paragraph.ParagraphFormat.Alignment = TextAlignment.Center;
presentation.Save("aligned_paragraph.pptx", SaveFormat.Pptx);
}
Az eredmény:

Szöveg átlátszóságának beállítása
A szöveg átlátszóságát az IBasePortionFormat.FillFormat színének alfa komponensével szabályozhatja. Az alábbi példákban az alpha = 50 egy ARGB alfa csatorna érték a 0–255 skálán, nem átlátszósági százalék.
Az alábbi kódrészlet bemutatja, hogyan alkalmazható átlátszóság a teljes bekezdés esetén:
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];
// Állítsa be a szöveg kitöltőszínét átlátszó színre.
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);
}
Az eredmény:

Az alábbi kódrészlet bemutatja, hogyan alkalmazható átlátszóság a félkövér betűkkel rendelkező szövegrészek esetén:
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)
{
// Állítsa be a szövegrész átlátszóságát.
portion.PortionFormat.FillFormat.FillType = FillType.Solid;
portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(alpha, Color.Black);
}
}
presentation.Save("transparent_text_portions.pptx", SaveFormat.Pptx);
}
Az eredmény:

Karakter távolság beállítása a szövegben
Használja az IBasePortionFormat.Spacing metódust a karakterek közötti távolság növelésére vagy csökkentésére egy szövegdobozban.
Az alábbi C# kód bemutatja, hogyan növelhető a karakter távolság a teljes bekezdés esetén:
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];
// Megjegyzés: Negatív értékek használata a karaktertávolság csökkentéséhez.
paragraph.ParagraphFormat.DefaultPortionFormat.Spacing = 3; // Karaktertávolság növelése.
presentation.Save("character_spacing_in_paragraph.pptx", SaveFormat.Pptx);
}
Az eredmény:

Az alábbi kódrészlet bemutatja, hogyan növelhető a karaktertávolság a félkövér betűkkel rendelkező szövegrészek esetén:
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)
{
// Megjegyzés: Negatív értékek használata a karaktertávolság csökkentéséhez.
portion.PortionFormat.Spacing = 3; // Karaktertávolság növelése.
}
}
presentation.Save("character_spacing_in_text_portions.pptx", SaveFormat.Pptx);
}
Az eredmény:

Kerning letiltása bizonyos betűtípusoknál
Bizonyos esetekben az Aspose.Slides által renderelt szöveg kissé szorosabb lehet, mint a PowerPointban megjelenő szöveg. Ennek oka lehet, hogy a PowerPoint egyes betűtípusoknál figyelmen kívül hagyja a kerning adatokat, még akkor is, ha a betűtípus tartalmaz érvényes kerning információt és a kerning engedélyezve van a PowerPoint beállításaiban.
Az ilyen esetekben a renderelt kimenet PowerPoint közelítéséhez letilthatja a kerninget a érintett betűtípust használó szövegrészeknél. Állítsa be az IBasePortionFormat.KerningMinimalSize értékét a tényleges betűméretnél jelentősen nagyobbra:
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);
}
Ez a beállítás megakadályozza a kerning alkalmazását a megfelelő szövegrészekre, és segíthet az Aspose.Slides renderelésének a PowerPoint vizuális kimenetéhez igazításában az érintett betűtípusok esetén.
Szöveg betűtulajdonságainak kezelése
A betűtulajdonságok beállíthatók a bekezdés szintjén a IParagraphFormat.DefaultPortionFormat segítségével, vagy egyes részekre az IPortionFormat segítségével.
Az alábbi kód beállítja a betűt és a szövegstílust a teljes bekezdéshez: betűméret, félkövér, dőlt, pontozott aláhúzás, valamint a Times New Roman betűt minden részhez a bekezdésben.
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];
// Állítsa be a bekezdés betűtulajdonságait.
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);
}
Az eredmény:

Az alábbi kódrészlet hasonló tulajdonságokat alkalmaz a félkövér betűkkel rendelkező szövegrészek esetén:
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)
{
// Állítsa be a betűtulajdonságokat a szövegrészhez.
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);
}
Az eredmény:

Szöveg forgatás beállítása
Használja a ITextFrameFormat.TextVerticalType metódust egy előre definiált szövegorientáció beállításához egy alakzaton belül.
Az alábbi kódrészlet a szöveg orientációt Vertical270-re állítja, ami 90 fokkal balra forgatja a szöveget:
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);
}
Az eredmény:

Egyéni forgatás beállítása szövegdobozokhoz
Használja a ITextFrameFormat.RotationAngle metódust egy egyéni forgatási szög beállításához egy ITextFrame számára.
Az alábbi kódrészlet a szövegdobozt 3 fokkal óramutató járásával megegyező irányba forgatja az alakzaton belül:
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);
}
Az eredmény:

Bekezdés sortávolságának beállítása
Az Aspose.Slides a IParagraphFormat.SpaceAfter, IParagraphFormat.SpaceBefore és IParagraphFormat.SpaceWithin segítségével szabályozza a bekezdés távolságait. Ezeket a tulajdonságokat a következőképpen használják:
- Pozitív értékkel a sortávolság a sormagasság százalékában adható meg.
- Negatív értékkel a sortávolság pontban adható meg.
Az alábbi kódrészlet bemutatja, hogyan adható meg a sortávolság a bekezdésen belül:
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);
}
Az eredmény:

Automatikus illesztés típusának beállítása szövegdobozokhoz
Az ITextFrameFormat.AutofitType meghatározza, hogyan viselkedik a szöveg, ha meghaladja a tárolója határait. Ezzel szabályozható, hogy a szöveg zsugorodik, túlfut vagy automatikusan átméretezi az alakzatot.
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);
}
A sorok számolásához automatikus sortördelés után és a szöveg vagy alakzat szélességének változásának megtekintéséhez lásd a Renderelt sorok számlálása oldalt. A sorok száma önmagában nem mutatja, hogy a szöveg túlfut-e a tárolójából.
Szövegdobozok rögzítésének beállítása
Az ITextFrameFormat.AnchoringType meghatározza, hogyan helyezkedik el függőlegesen a szöveg egy alakzaton belül, például a tetején, közepén vagy alján.
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);
}
Szöveg tabulációjának beállítása
Használja az IParagraphFormat.DefaultTabSize és az IParagraphFormat.Tabs metódusokat a bekezdés tabulátorainak konfigurálásához.
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);
}
Az eredmény:

Javítási nyelv beállítása
Az Aspose.Slides biztosítja az IBasePortionFormat.LanguageId lehetőségét, amely lehetővé teszi a javítási nyelv beállítását egy szövegrészhez. A javítási nyelv határozza meg, melyik nyelvet használja a helyesírás- és nyelvtan-ellenőrzés a PowerPointban.
Az alábbi kódrészlet bemutatja, hogyan állítható be a javítási nyelv egy szövegrészhez:
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;
// Állítsa be a javítási nyelv azonosítóját.
textPortion.PortionFormat.LanguageId = "zh-CN";
textPortion.Text = "1。";
paragraph.Portions.Add(textPortion);
presentation.Save("proofing_language.pptx", SaveFormat.Pptx);
}
Alapértelmezett nyelv beállítása
Használja a LoadOptions.DefaultTextLanguage metódust az alapértelmezett nyelv meghatározásához a betöltés vagy létrehozás során létrehozott szövegekhez.
using Aspose.Slides;
var loadOptions = new LoadOptions();
loadOptions.DefaultTextLanguage = "en-US";
using (var presentation = new Presentation(loadOptions))
{
var slide = presentation.Slides[0];
// Új téglalap alakzat hozzáadása szöveggel.
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 20, 20, 150, 50);
shape.TextFrame.Text = "Sample text";
// Ellenőrizze az első rész nyelvét.
var portion = shape.TextFrame.Paragraphs[0].Portions[0];
Console.WriteLine(portion.PortionFormat.LanguageId);
}
Alapértelmezett szövegstílus beállítása
Az alapértelmezett szövegformázás alkalmazásához a prezentáció szintjén használja az IPresentation.DefaultTextStyle metódust.
Az alábbi kódrészlet bemutatja, hogyan állítható be egy alapértelmezett félkövér betű, 14 pt mérettel az összes dián lévő szöveghez egy új prezentációban.
using Aspose.Slides;
using Aspose.Slides.Export;
using (var presentation = new Presentation())
{
// Lekéri a legfelső szintű bekezdésformátumot.
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);
}
Szöveg kinyerése a nagybetűs hatással
A PowerPointban a All Caps betűhatás alkalmazása azt eredményezi, hogy a szöveg nagybetűvel jelenik meg a dián, még ha eredetileg kisbetűvel lett beíró. Amikor ilyen szövegrészt kér le az Aspose.Slides, a könyvtár pontosan úgy adja vissza a szöveget, ahogy be lett gépelve. A megjelenített szöveghez való illesztéshez ellenőrizze a TextCapType értékét, és nagybetűssé alakítsa a visszaadott karakterláncot, ha az érték All.
Tegyük fel, hogy a sample2.pptx fájl első diáján a következő szövegdoboz található.

Az alábbi kódrészlet bemutatja, hogyan nyerhető ki a szöveg a All Caps hatás alkalmazásával:
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}");
}
}
Kimenet:
Original text: Hello, Aspose!
All-Caps effect: HELLO, ASPOSE!
GYIK
Hogyan módosítható a szöveg egy táblázatban a dián?
A szöveg táblázatban történő módosításához használja a ITable interfészt. Iteráljon a cellákon, és frissítse mindegyik cellát a ICell.TextFrame és a bekezdés formázását az IParagraph.ParagraphFormat segítségével.
Hogyan alkalmazhatók színátmenetek a szövegre egy PowerPoint diában?
A színátmenetes szöveghez használja az IBasePortionFormat.FillFormat metódust. Állítsa be az IFillFormat.FillType értékét a FillType.Gradient opcióra, és konfigurálja a színátmenet állomásait, irányát és átlátszóságát.