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

Szöveg kiemelése
Használja az ITextFrame.HighlightText metódust, amikor egy szövegrétegen belül egy adott minta alapján kell szöveget kiemelni. A metódus kiemelő színt alkalmaz a megfelelő szövegrészekre, és használható a TextSearchOptions segítségével a keresés módjának szabályozására, például csak teljes szavak egyezésére.
Az alábbi kódrészlet minden “try” karakter előfordulást kiemeli, majd csak a teljes “to” szót emeli ki.
using (var presentation = new Presentation("sample.pptx"))
{
// Szerezze meg az első alakzatot az első diáról.
var shape = (IAutoShape)presentation.Slides[0].Shapes[0];
// Emelje ki a "try" szót az alakzaton.
shape.TextFrame.HighlightText("try", Color.LightBlue);
var searchOptions = new TextSearchOptions()
{
WholeWordsOnly = true
};
// Emelje ki a "to" szót az alakzaton.
shape.TextFrame.HighlightText("to", Color.Violet, searchOptions, null);
presentation.Save("highlighted_text.pptx", SaveFormat.Pptx);
}
Az eredmény:

Szöveg kiemelése reguláris kifejezésekkel
Az ITextFrame.HighlightRegex metódus a reguláris kifejezéssel megtalált szöveg egyezéseket emeli ki. .NET-ben ez az API a ITextFrame felületén érhető el.
Az alábbi kódrészlet minden hét vagy több karaktert tartalmazó szót kiemeli:
using (var presentation = new Presentation(folderPath + "sample.pptx"))
{
var shape = (IAutoShape)presentation.Slides[0].Shapes[0];
var regex = new Regex(@"\b[^\s]{7,}\b");
// Emelje ki az összes olyan szót, amely legalább hét karakterből áll.
shape.TextFrame.HighlightRegex(regex, Color.Yellow, null);
presentation.Save(folderPath + "highlighted_text_using_regex.pptx", SaveFormat.Pptx);
}
Az eredmény:

Szöveg háttérszínének beállítása
Használja az IParagraphFormat.DefaultPortionFormat metódust a bekezdés alapértelmezett kiemelő színének beállításához, vagy az IPortionFormat.HighlightColor metódust az egyes szövegrészekhez.
Az alábbi kódrészlet bemutatja, hogyan állítható be a háttérszín a teljes bekezdés számára:
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 kiemelés színét a teljes bekezdésre.
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 háttérszín félkövér betűtípussal rendelkező szövegrészek számára:
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 kiemelés színét a szövegrészhez.
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 az IParagraphFormat.Alignment tulajdonságot a bekezdés igazításának beállításához egy szövegrétegen belül. Az érték lehet középre, balra, jobbra igazított, sorkizárt stb.
Az alábbi kódrészlet bemutatja, hogyan igazítható a bekezdés középre:
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ága az IPortionFormat.FillFormat színének alfa komponensével szabályozható. Az alábbi példákban az alpha = 50 egy 0–255 skálájú ARGB alfa-csatorna érték, nem átlátszósági százalék.
Az alábbi kódrészlet bemutatja, hogyan alkalmazható átlátszóság a teljes bekezdésre:
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 félkövér betűtípussal rendelkező szövegrészek számára:
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:

Karaktertávolság beállítása a szövegben
Használja az IBasePortionFormat.Spacing tulajdonságot 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 karaktertávolság a teljes bekezdésben:
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 összenyomásához.
paragraph.ParagraphFormat.DefaultPortionFormat.Spacing = 3; // A 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 félkövér betűtípussal rendelkező szövegrészek esetén:
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 összenyomásához.
portion.PortionFormat.Spacing = 3; // A karaktertávolság növelése.
}
}
presentation.Save("character_spacing_in_text_portions.pptx", SaveFormat.Pptx);
}
Az eredmény:

Kerning letiltása adott betűtípusoknál
Néhány esetben az Aspose.Slides által renderelt szöveg kicsit szorosabbnak tűnhet, mint a PowerPoint-ban megjelenő ugyanaz a szöveg. Ez azért fordulhat elő, mert a PowerPoint egyes betűtípusoknál figyelmen kívül hagyhatja a kerning adatokat, még akkor is, ha a betűtípus tartalmaz érvényes kerning információt és a PowerPoint beállításaiban a kerning engedélyezve van.
A renderelt kimenet PowerPoint-hoz való közelebb hozása érdekében ilyen esetekben letilthatja a kerninget azoknál a szövegrészeknél, amelyek az érintett betűtípust használják. Állítsa be az IPortionFormat.KerningMinimalSize értékét sokkal nagyobbra, mint a tényleges betűméret:
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 bekezdés szinten az 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ípust és a szövegstílust a teljes bekezdés számára: betűméretet, félkövér, dőlt, pontozott aláhúzást és a Times New Roman betűtípust alkalmaz minden résznél a bekezdésben.
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 félkövér betűtípussal rendelkező szövegrészek esetén:
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 betűtulajdonságait.
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ának beállítása
Használja az ITextFrameFormat.TextVerticalType metódust egy előre definiált szövegorientáció beállításához egy alakzatban.
Az alábbi kódrészlet a szöveg orientációt Vertical270-re állítja az alakzatban, ami a szöveget 90 fokkal óramutató járásával ellentétesen forgat:
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 az ITextFrameFormat.RotationAngle metódust egy egyéni forgatási szög beállításához egy ITextFrame esetén.
Az alábbi kódrészlet a szövegdobozt 3 fokkal az óramutató járásával megegyező irányban forgatja az alakzatban:
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 sorok közti távolság beállítása
Az Aspose.Slides biztosítja az IParagraphFormat.SpaceAfter, IParagraphFormat.SpaceBefore és IParagraphFormat.SpaceWithin tulajdonságokat a bekezdés távolságának szabályozásához. Ezeket a következőképpen használják:
- Pozitív érték használata a sorköz meghatározásához a sor magasságának százalékában.
- Negatív érték használata a sorköz meghatározásához pontokban.
Az alábbi kódrészlet bemutatja, hogyan adható meg a sorköz a bekezdésen belül:
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 illeszkedé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ó határait. Használja annak szabályozására, hogy a szöveg zsugorodjon, túlcsorduljon vagy a forma automatikusan átméreteződjön.
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);
}
Szövegdobozok rögzítésének beállítása
Az ITextFrameFormat.AnchoringType meghatározza, hogyan helyezkedik el a szöveg függőlegesen egy alakzatban, például a tetején, közepén vagy alján.
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 tulajdonságokat a tabulátorok beállításához egy bekezdésben.
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:

Ellenőrző nyelv beállítása
Az Aspose.Slides biztosítja az IPortionFormat.LanguageId tulajdonságot, amely lehetővé teszi a szövegrész ellenőrző nyelvének beállítását. Az ellenőrző nyelv határozza meg a helyesírás- és nyelvtani ellenőrzéshez használt nyelvet a PowerPointban.
Az alábbi kódrészlet bemutatja, hogyan állítható be egy szövegrész ellenőrző nyelve:
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 helyesírá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 beállítást a prezentáció betöltése vagy létrehozása során létrehozott szöveg alapértelmezett nyelvének meghatározásához.
var loadOptions = new LoadOptions();
loadOptions.DefaultTextLanguage = "en-US";
using (var presentation = new Presentation(loadOptions))
{
var slide = presentation.Slides[0];
// Adjunk hozzá egy új téglalap alakzatot szöveggel.
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 20, 20, 150, 50);
shape.TextFrame.Text = "Sample text";
// Ellenőrizze az első szövegré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 elemet.
Az alábbi kódrészlet bemutatja, hogyan állítható be egy alapértelmezett félkövér betűtípus 14 pt mérettel az összes dián lévő szöveghez egy új prezentációban.
using (var presentation = new Presentation())
{
// Szerezze meg a felső 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 az All Caps betűhatás alkalmazása a szöveget nagybetűs megjelenésűvé teszi a dián, még akkor is, ha eredetileg kisbetűkkel lett beírt. Amikor az Aspose.Slides-szel egy ilyen szövegrészt lekér, a könyvtár a szöveget pontosan úgy adja vissza, ahogy be lett írva. A megjelenő szöveghez igazodva ellenőrizze a TextCapType értékét, és konvertálja a visszakapott karakterláncot nagybetűsre, ha az érték All.
Tegyük fel, hogy a sample2.pptx fájl első diáján a következő szövegdoboz van.

Az alábbi kódrészlet bemutatja, hogyan nyerhető ki a szöveg a All Caps hatással:
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 dián található táblázatban?
A dián található táblázat szövegének módosításához használja a ITable elemet. Iteráljon a cellákon, és frissítse minden cellát a ICell.TextFrame és a bekezdés formázást az IParagraph.ParagraphFormat segítségével.
Hogyan alkalmazhatók színátmenetek a szövegre egy PowerPoint dián?
A szövegre színátmenet alkalmazásához használja az IPortionFormat.FillFormat elemet. Állítsa a IFillFormat.FillType értékét a FillType.Gradient típusra, és konfigurálja a színátmenet állomásait, irányát és átlátszóságát.