Prezentáció szövegének formázása Androidon
Áttekintés
Ez a cikk bemutatja, hogyan lehet formázni a szöveget PowerPoint és OpenDocument prezentációkban az Aspose.Slides for Android Java API-jával. Kitér a kiemelésre, háttérszínekre, átlátszóságra, karaktertávolságra, betűtípus‑beállításokra, forgatásra, bekezdés távolságokra, automatikus méretezésre, 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övegdobozban a következő szöveget tartalmazza:

Szöveg kiemelése
Használja a ITextFrame.highlightText metódust, amikor egy adott mintára illeszkedő szöveget kell kiemelni egy szövegdobozban. A metódus a megfelelő szövegrészekhez kiemelő színt alkalmaz, és a ITextSearchOptions segítségével szabályozható a keresés módja, például csak teljes szavakra történő illesztés.
Az alábbi kódrészlet mindegyik „try” karakterlánc előfordulását kiemeli, majd csak a teljes „to” szót.
Presentation presentation = new Presentation("sample.pptx");
try {
// Az első dia első alakzatának lekérése.
IAutoShape shape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// A "try" szót emeli ki az alakzatban.
shape.getTextFrame().highlightText("try", Color.rgb(173, 216, 230));
TextSearchOptions searchOptions = new TextSearchOptions();
searchOptions.setWholeWordsOnly(true);
// A "to" szót emeli ki az alakzatban.
int violetColor = Color.rgb(238, 130, 238);
shape.getTextFrame().highlightText("to", violetColor, searchOptions, null);
presentation.save("highlighted_text.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Szöveg kiemelése reguláris kifejezésekkel
Az ITextFrame.highlightRegex metódus a reguláris kifejezéssel megtalált egyezéseket emeli ki.
Az alábbi kódrészlet minden legalább hét karakterből álló szót kiemeli:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape shape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
java.util.regex.Pattern regex = java.util.regex.Pattern.compile("\\b[^\\s]{7,}\\b");
// Az összes legalább hét karakterből álló szót emeli ki.
shape.getTextFrame().highlightRegex(regex, Color.YELLOW, null);
presentation.save("highlighted_text_using_regex.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Szöveg háttérszín beállítása
Használja a IParagraphFormat.getDefaultPortionFormat metódust a bekezdés alapértelmezett kiemelő színének beállításához, vagy az IBasePortionFormat.getHighlightColor metódust egyedi szövegrészekhez.
Az alábbi kódrészlet megmutatja, hogyan állítható be a teljes bekezdés háttérszíne:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
// Állítsa be a teljes bekezdés kiemelési színét.
paragraph.getParagraphFormat().getDefaultPortionFormat().getHighlightColor().setColor(Color.LTGRAY);
presentation.save("gray_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Az alábbi kódrészlet bemutatja, hogyan állítható be a félkövér betűtípussal rendelkező szövegrészek háttérszíne:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
for (int portionIndex = 0; portionIndex < paragraph.getPortions().getCount(); portionIndex++) {
IPortion portion = paragraph.getPortions().get_Item(portionIndex);
if (portion.getPortionFormat().getEffective().getFontBold()) {
// Állítsa be a kiemelési színt a szövegrészhez.
portion.getPortionFormat().getHighlightColor().setColor(Color.LTGRAY);
}
}
presentation.save("gray_text_portions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Szövegbekezdések igazítása
Használja a IParagraphFormat.setAlignment metódust a szövegdobozban lévő bekezdés igazításához. Az érték lehet középre, balra, jobbra, sorkizárt stb.
Az alábbi kódrészlet megmutatja, hogyan igazítható a bekezdés középre:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
// Állítsa be a bekezdés igazítását középre.
paragraph.getParagraphFormat().setAlignment(TextAlignment.Center);
presentation.save("aligned_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Szöveg átlátszóságának beállítása
A szöveg átlátszóságát a IBasePortionFormat.getFillFormat színének alfa komponense szabályozza. Az alábbi példákban az alpha = 50 egy ARGB alfa‑csatorna érték a 0‑255 skálán, nem százalékos átlátszóság.
Az alábbi kódrészlet megmutatja, hogyan alkalmazható átlátszóság a teljes bekezdésre:
int alpha = 50;
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
// Állítsa be a szöveg kitöltő színét átlátszó színre.
paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.argb(alpha, 0, 0, 0));
presentation.save("transparent_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Az alábbi kódrészlet megmutatja, hogyan alkalmazható átlátszóság félkövér betűtípussal rendelkező szövegrészekre:
int alpha = 50;
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
for (int portionIndex = 0; portionIndex < paragraph.getPortions().getCount(); portionIndex++) {
IPortion portion = paragraph.getPortions().get_Item(portionIndex);
if (portion.getPortionFormat().getEffective().getFontBold()) {
// Állítsa be a szövegrész átlátszóságát.
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.argb(alpha, 0, 0, 0));
}
}
presentation.save("transparent_text_portions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Karaktertávolság beállítása a szövegben
Használja a IBasePortionFormat.setSpacing metódust a karakterek közti távolság növelésére vagy csökkentésére egy szövegdobozban.
Az alábbi Java kód megmutatja, hogyan növelhető a karaktertávolság a teljes bekezdésben:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
// Megjegyzés: Negatív értékek használata a karaktertávolság szűkítéséhez.
paragraph.getParagraphFormat().getDefaultPortionFormat().setSpacing(3); // Karaktertávolság növelése.
presentation.save("character_spacing_in_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Az alábbi kódrészlet megmutatja, hogyan növelhető a karaktertávolság félkövér betűtípussal rendelkező szövegrészekben:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
for (int portionIndex = 0; portionIndex < paragraph.getPortions().getCount(); portionIndex++) {
IPortion portion = paragraph.getPortions().get_Item(portionIndex);
if (portion.getPortionFormat().getEffective().getFontBold()) {
// Megjegyzés: Negatív értékek használata a karaktertávolság szűkítéséhez.
portion.getPortionFormat().setSpacing(3); // Karaktertávolság növelése.
}
}
presentation.save("character_spacing_in_text_portions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Kerning letiltása adott betűtípusoknál
Bizonyos esetekben az Aspose.Slides által renderelt szöveg kissé szorosabb lehet, mint a PowerPointban megjelenő szöveg. Ez akkor fordul elő, ha a PowerPoint bizonyos 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 PowerPoint beállításaiban engedélyezve van a kerning.
Az ilyen esetekben a készített kimenetet a PowerPoint-hoz közelebb hozhatja, ha letiltja a kerninget az érintett betűtípusú szövegrészeknél. Állítsa be az IBasePortionFormat.setKerningMinimalSize értékét lényegesen nagyobbra, mint a tényleges betűméret:
Presentation presentation = new Presentation("presentation.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
String targetFont = "Roboto";
for (int paragraphIndex = 0; paragraphIndex < autoShape.getTextFrame().getParagraphs().getCount(); paragraphIndex++) {
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(paragraphIndex);
for (int portionIndex = 0; portionIndex < paragraph.getPortions().getCount(); portionIndex++) {
IPortion portion = paragraph.getPortions().get_Item(portionIndex);
IFontData latinFont = portion.getPortionFormat().getLatinFont();
IFontData eastAsianFont = portion.getPortionFormat().getEastAsianFont();
IFontData complexScriptFont = portion.getPortionFormat().getComplexScriptFont();
boolean usesTargetFont =
latinFont != null && targetFont.equals(latinFont.getFontName()) ||
eastAsianFont != null && targetFont.equals(eastAsianFont.getFontName()) ||
complexScriptFont != null && targetFont.equals(complexScriptFont.getFontName());
if (usesTargetFont) {
portion.getPortionFormat().setKerningMinimalSize(100);
}
}
}
presentation.save("output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Ez a beállítás meggátolja a kerning alkalmazását a megfelelő szövegrészekre, és segíthet az Aspose.Slides renderelésének a PowerPoint által használt megjelenéshez igazításában azoknál a betűtípusoknál, amelyeket a PowerPoint speciális viselkedése érint.
Szöveg betűtípus‑tulajdonságainak kezelése
A betűtípus‑tulajdonságok beállíthatók bekezdés szinten a IParagraphFormat.getDefaultPortionFormat vagy egyedi részeknél az IPortionFormat segítségével.
Az alábbi kód a teljes bekezdés betűtípusát és stílusát állítja be: betűméret, félkövér, dőlt, pontozott aláhúzás és a Times New Roman betűtípus alkalmazása minden részre a bekezdésben.
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
// Állítsa be a bekezdés betűtulajdonságait.
paragraph.getParagraphFormat().getDefaultPortionFormat().setFontHeight(12);
paragraph.getParagraphFormat().getDefaultPortionFormat().setFontBold(NullableBool.True);
paragraph.getParagraphFormat().getDefaultPortionFormat().setFontItalic(NullableBool.True);
paragraph.getParagraphFormat().getDefaultPortionFormat().setFontUnderline(TextUnderlineType.Dotted);
paragraph.getParagraphFormat().getDefaultPortionFormat().setLatinFont(new FontData("Times New Roman"));
presentation.save("font_properties_for_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Az alábbi kódrészlet hasonló tulajdonságokat alkalmaz félkövér betűtípussal rendelkező szövegrészekre:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
for (int portionIndex = 0; portionIndex < paragraph.getPortions().getCount(); portionIndex++) {
IPortion portion = paragraph.getPortions().get_Item(portionIndex);
if (portion.getPortionFormat().getEffective().getFontBold()) {
// Állítsa be a szövegrész betűtulajdonságait.
portion.getPortionFormat().setFontHeight(13);
portion.getPortionFormat().setFontItalic(NullableBool.True);
portion.getPortionFormat().setFontUnderline(TextUnderlineType.Dotted);
portion.getPortionFormat().setLatinFont(new FontData("Times New Roman"));
}
}
presentation.save("font_properties_for_text_portions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Szöveg forgatása
Használja a ITextFrameFormat.setTextVerticalType metódust, hogy előre definiált szöveg‑orientációt állítson be egy alakzatban.
Az alábbi kódrészlet a szöveg‑orientációt Vertical270‑re állítja, ez 90 fokkal óramutató járásával ellentétesen forgatja a szöveget:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
autoShape.getTextFrame().getTextFrameFormat().setTextVerticalType(TextVerticalType.Vertical270);
presentation.save("text_rotation.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Egyéni forgatás beállítása szövegdobozokhoz
Használja a ITextFrameFormat.setRotationAngle metódust, hogy egyedi forgatási szöget állítson be egy ITextFrame-hez.
Az alábbi kódrészlet a szövegdobozt 3 fokkal az óramutató járásával megegyező irányban forgatja az alakzatban:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
autoShape.getTextFrame().getTextFrameFormat().setRotationAngle(3);
presentation.save("custom_text_rotation.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Bekezdések sortávolságának beállítása
Az Aspose.Slides a IParagraphFormat.setSpaceAfter, IParagraphFormat.setSpaceBefore és IParagraphFormat.setSpaceWithin metódusokkal szabályozza a bekezdés távolságait. Ezeket a tulajdonságokat a következő módon kell használni:
- Pozitív érték esetén a sortávolság a sormagasság százalékában kerül megadásra.
- Negatív érték esetén a sortávolság pontban kerül megadásra.
Az alábbi kódrészlet megmutatja, hogyan adható meg a sortávolság a bekezdésen belül:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
paragraph.getParagraphFormat().setSpaceWithin(200);
presentation.save("line_spacing.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Automatikus méretezés típusának beállítása szövegdobozokhoz
Az ITextFrameFormat.setAutofitType határozza meg, hogyan viselkedik a szöveg, ha meghaladja a tároló határait. Ezzel szabályozható, hogy a szöveg zsugorodjon, túlcsorduljon vagy a forma automatikusan átméreteződjön.
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
autoShape.getTextFrame().getTextFrameFormat().setAutofitType(TextAutofitType.Shape);
presentation.save("autofit_type.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Szövegdoboz rögzítési pontjának beállítása
Az ITextFrameFormat.setAnchoringType meghatározza, hogyan helyezkedik el a szöveg függőlegesen egy alakzatban, például felül, középen vagy alul.
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
autoShape.getTextFrame().getTextFrameFormat().setAnchoringType(TextAnchorType.Bottom);
presentation.save("text_anchor.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Szöveg tabuláció beállítása
Használja a IParagraphFormat.setDefaultTabSize és a IParagraphFormat.getTabs metódusokat a bekezdés tabulátorainak konfigurálásához.
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
paragraph.getParagraphFormat().setDefaultTabSize(100);
paragraph.getParagraphFormat().getTabs().add(30, TabAlignment.Left);
presentation.save("paragraph_tabs.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Helyesírás‑ellenőrzés nyelvének beállítása
Az Aspose.Slides a IBasePortionFormat.setLanguageId metódussal lehetővé teszi a helyesírás‑ellenőrzés nyelvének beállítását egy szövegrészhez. A nyelv határozza meg, hogy a PowerPoint milyen nyelven végez helyesírás‑ és nyelvtani ellenőrzést.
Az alábbi kódrészlet megmutatja, hogyan állítható be a helyesírás‑ellenőrzés nyelve egy szövegrészhez:
Presentation presentation = new Presentation("presentation.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
paragraph.getPortions().clear();
FontData font = new FontData("SimSun");
Portion textPortion = new Portion();
textPortion.getPortionFormat().setComplexScriptFont(font);
textPortion.getPortionFormat().setEastAsianFont(font);
textPortion.getPortionFormat().setLatinFont(font);
// Állítsa be egy helyesírási nyelv azonosítóját.
textPortion.getPortionFormat().setLanguageId("zh-CN");
textPortion.setText("1。");
paragraph.getPortions().add(textPortion);
presentation.save("proofing_language.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Alapértelmezett nyelv beállítása
Használja a LoadOptions.setDefaultTextLanguage metódust, hogy meghatározza az alapértelmezett nyelvet a prezentáció betöltése vagy létrehozása során létrehozott szöveghez.
LoadOptions loadOptions = new LoadOptions();
loadOptions.setDefaultTextLanguage("en-US");
Presentation presentation = new Presentation(loadOptions);
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Új téglalap alakzat hozzáadása szöveggel.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 20, 150, 50);
shape.getTextFrame().setText("Sample text");
// Ellenőrizze az első szövegrész nyelvét.
IPortion portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0);
System.out.println(portion.getPortionFormat().getLanguageId());
} finally {
presentation.dispose();
}
Alapértelmezett szövegstílus beállítása
Az egész prezentáció szintjén alkalmazandó alapértelmezett szövegformázáshoz használja az IPresentation.getDefaultTextStyle metódust.
Az alábbi kódrészlet egy alapértelmezett félkövér betűtípust állít be 14 pt mérettel az összes dián egy új prezentációban.
Presentation presentation = new Presentation();
try {
// A legfelső szintű bekezdésformátum lekérése.
IParagraphFormat paragraphFormat = presentation.getDefaultTextStyle().getLevel(0);
if (paragraphFormat != null) {
paragraphFormat.getDefaultPortionFormat().setFontHeight(14);
paragraphFormat.getDefaultPortionFormat().setFontBold(NullableBool.True);
}
presentation.save("default_text_style.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Szöveg kinyerése nagybetűs hatással
A PowerPointben a All Caps (nagybetűs) betűhatás alkalmazása a szöveget nagybetűben jeleníti meg a dián, még akkor is, ha a szöveget eredetileg kisbetűkkel írták. Az Aspose.Slides‑kel ilyen szövegrészt lekérve a könyvtár a beírt szöveget adja vissza. A megjelenített szöveghez való illesztéshez ellenőrizze a TextCapType értékét, és ha az All, akkor konvertálja a visszakapott karakterláncot nagybetűssé.
Tegyük fel, hogy a sample2.pptx első diáján a következő szövegdoboz található.

Az alábbi kódrészlet megmutatja, hogyan nyerhető ki a szöveg a All Caps hatással:
Presentation presentation = new Presentation("sample2.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IPortion textPortion = autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0);
System.out.println("Original text: " + textPortion.getText());
IPortionFormatEffectiveData textFormat = textPortion.getPortionFormat().getEffective();
if (textFormat.getTextCapType() == TextCapType.All) {
String text = textPortion.getText().toUpperCase();
System.out.println("All-Caps effect: " + text);
}
} finally {
presentation.dispose();
}
Kimenet:
Original text: Hello, Aspose!
All-Caps effect: HELLO, ASPOSE!
GYIK
Hogyan módosítható egy táblázat szövege egy dián?
A táblázat szövegének módosításához egy dián használja az ITable interfészt. Iteráljon a cellákon, és frissítse őket a ICell.getTextFrame segítségével, a bekezdésformázást pedig az IParagraph.getParagraphFormat metódussal.
Hogyan alkalmazhatók gradient színek a szövegre egy PowerPoint dián?
Gradient szín alkalmazásához használja a IBasePortionFormat.getFillFormat metódust. Állítsa be az IFillFormat.setFillType értékét a FillType.Gradient-ra, és konfigurálja a gradient állomásokat, irányt és átlátszóságot.