Tekst in presentaties opmaken op Android
Overzicht
Dit artikel laat zien hoe u tekst kunt formatteren in PowerPoint‑ en OpenDocument‑presentaties met Aspose.Slides for Android via Java. Het behandelt markeren, achtergrondkleuren, transparantie, tekenafstand, lettertype‑eigenschappen, rotatie, alinea‑afstand, autofit‑gedrag, tekstankering, tab‑stops en taalinstellingen.
In de onderstaande voorbeelden gebruiken we een bestand genaamd “sample.pptx”, dat een enkel tekstvak op de eerste dia bevat met de volgende tekst:

Tekst markeren
Gebruik de ITextFrame.highlightText methode wanneer u tekst wilt markeren die overeenkomt met een specifiek voorbeeld binnen een tekstframe. De methode past een markeerkleur toe op overeenkomende tekstfragmenten en kan worden gebruikt met ITextSearchOptions om te bepalen hoe de zoekopdracht wordt uitgevoerd, bijvoorbeeld om alleen volledige woorden te matchen.
Het code‑voorbeeld hieronder markeert alle voorkomens van de tekens “try” en markeert vervolgens alleen het volledige woord “to”.
Presentation presentation = new Presentation("sample.pptx");
try {
// Haal de eerste vorm op van de eerste dia.
IAutoShape shape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// Markeer het woord "try" in de vorm.
shape.getTextFrame().highlightText("try", Color.rgb(173, 216, 230));
TextSearchOptions searchOptions = new TextSearchOptions();
searchOptions.setWholeWordsOnly(true);
// Markeer het woord "to" in de vorm.
int violetColor = Color.rgb(238, 130, 238);
shape.getTextFrame().highlightText("to", violetColor, searchOptions, null);
presentation.save("highlighted_text.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Het resultaat:

Tekst markeren met reguliere expressies
De ITextFrame.highlightRegex methode markeert tekst die wordt gevonden met een reguliere expressie.
Het code‑voorbeeld hieronder markeert alle woorden die zeven of meer tekens bevatten:
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");
// Markeer alle woorden met zeven of meer tekens.
shape.getTextFrame().highlightRegex(regex, Color.YELLOW, null);
presentation.save("highlighted_text_using_regex.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Het resultaat:

Achtergrondkleur van tekst instellen
Gebruik IParagraphFormat.getDefaultPortionFormat om de standaard markeerkleur voor een alinea in te stellen, of gebruik IBasePortionFormat.getHighlightColor voor individuele tekstgedeelten.
Het volgende code‑voorbeeld toont hoe u de achtergrondkleur voor de hele alinea instelt:
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);
// Stel de markeerkleur in voor de hele alinea.
paragraph.getParagraphFormat().getDefaultPortionFormat().getHighlightColor().setColor(Color.LTGRAY);
presentation.save("gray_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Het resultaat:

Het code‑voorbeeld hieronder laat zien hoe u de achtergrondkleur instelt voor tekstgedeelten met een vet lettertype:
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()) {
// Stel de markeerkleur in voor het tekstgedeelte.
portion.getPortionFormat().getHighlightColor().setColor(Color.LTGRAY);
}
}
presentation.save("gray_text_portions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Het resultaat:

Tekst‑alinea’s uitlijnen
Gebruik IParagraphFormat.setAlignment om de alinea‑uitlijning binnen een tekstframe in te stellen. De waarde kan gecentreerd, links‑uitgelijnd, rechts‑uitgelijnd, uitgevuld, enz. zijn.
Het volgende code‑voorbeeld toont hoe u de alinea centraalt:
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);
// Stel de uitlijning van de alinea in op centreren.
paragraph.getParagraphFormat().setAlignment(TextAlignment.Center);
presentation.save("aligned_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Het resultaat:

Transparantie voor tekst instellen
Transparantie van tekst wordt geregeld via het alfa‑onderdeel van de kleur die is toegewezen aan IBasePortionFormat.getFillFormat. In de onderstaande voorbeelden is alpha = 50 een ARGB‑alfa‑waarde op een schaal van 0‑255, geen transparantiepercentage.
Het code‑voorbeeld hieronder toont hoe u transparantie toepast op de hele alinea:
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);
// Stel de vullingskleur van de tekst in op een transparante kleur.
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();
}
Het resultaat:

Het volgende code‑voorbeeld toont hoe u transparantie toepast op tekstgedeelten met een vet lettertype:
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()) {
// Stel de transparantie van het tekstgedeelte in.
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();
}
Het resultaat:

Letterafstand voor tekst instellen
Gebruik IBasePortionFormat.setSpacing om de afstand tussen tekens in een tekstvak uit te breiden of te verkleinen.
De volgende Java‑code toont hoe u de letterafstand in de hele alinea vergroot:
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);
// Opmerking: Gebruik negatieve waarden om de tekenafstand te comprimeren.
paragraph.getParagraphFormat().getDefaultPortionFormat().setSpacing(3); // Vergroot de tekenafstand.
presentation.save("character_spacing_in_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Het resultaat:

Het code‑voorbeeld hieronder toont hoe u de letterafstand vergroot in tekstgedeelten met een vet lettertype:
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()) {
// Opmerking: Gebruik negatieve waarden om de tekenafstand te comprimeren.
portion.getPortionFormat().setSpacing(3); // Vergroot de tekenafstand.
}
}
presentation.save("character_spacing_in_text_portions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Het resultaat:

Kerning voor specifieke lettertypes uitschakelen
In sommige gevallen kan tekst die door Aspose.Slides wordt gerenderd iets strakker lijken dan dezelfde tekst in PowerPoint. Dit kan gebeuren omdat PowerPoint kerning‑gegevens voor bepaalde lettertypes negeert, zelfs wanneer het lettertype geldige kerning‑informatie bevat en kerning ingeschakeld is in de PowerPoint‑instellingen.
Om de weergave in dergelijke gevallen dichter bij PowerPoint te laten komen, kunt u kerning uitschakelen voor tekstgedeelten die het betreffende lettertype gebruiken. Stel IBasePortionFormat.setKerningMinimalSize in op een waarde die aanzienlijk groter is dan de daadwerkelijke lettergrootte:
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();
}
Deze instelling voorkomt dat kerning wordt toegepast op overeenkomende tekstgedeelten en kan helpen om de weergave van Aspose.Slides beter te laten aansluiten bij de visuele output van PowerPoint voor lettertypes die door dit PowerPoint‑specifieke gedrag worden beïnvloed.
Lettertype‑eigenschappen van tekst beheren
Lettertype‑eigenschappen kunnen op alinea‑niveau worden ingesteld via IParagraphFormat.getDefaultPortionFormat of op individuele gedeelten via IPortionFormat.
De volgende code stelt het lettertype en de tekststijl in voor de hele alinea: het past lettergrootte, vet, cursief, gestippelde onderstreping en het lettertype Times New Roman toe op alle gedeelten in de alinea.
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);
// Stel de lettertype-eigenschappen in voor de alinea.
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();
}
Het resultaat:

Het code‑voorbeeld hieronder past soortgelijke eigenschappen toe op tekstgedeelten met een vet lettertype:
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()) {
// Stel de lettertype‑eigenschappen in voor het tekstgedeelte.
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();
}
Het resultaat:

Tekstrotatie instellen
Gebruik ITextFrameFormat.setTextVerticalType om een vooraf gedefinieerde tekstrichting binnen een vorm in te stellen.
De volgende code‑voorbeeld stelt de tekstrichting in de vorm in op Vertical270, waardoor de tekst 90 graden tegen de klok in wordt geroteerd:
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();
}
Het resultaat:

Aangepaste rotatie voor tekstframes instellen
Gebruik ITextFrameFormat.setRotationAngle om een aangepaste rotatiehoek in te stellen voor een ITextFrame.
Het code‑voorbeeld hieronder roteert het tekstframe met 3 graden met de klok mee binnen de vorm:
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();
}
Het resultaat:

Regellengte van alinea’s instellen
Aspose.Slides biedt IParagraphFormat.setSpaceAfter, IParagraphFormat.setSpaceBefore en IParagraphFormat.setSpaceWithin om alinea‑afstand te regelen. Deze eigenschappen worden als volgt gebruikt:
- Gebruik een positieve waarde om de regelafstand als percentage van de regelhoogte op te geven.
- Gebruik een negatieve waarde om de regelafstand in punten op te geven.
De volgende code‑voorbeeld toont hoe u de regelafstand binnen de alinea specificeert:
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();
}
Het resultaat:

Autofit‑type voor tekstframes instellen
ITextFrameFormat.setAutofitType bepaalt hoe tekst zich gedraagt wanneer deze de grenzen van de container overschrijdt. Gebruik deze instelling om te bepalen of de tekst krimpt, overlapt of de vorm automatisch schaalt.
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();
}
Anker van tekstframes instellen
ITextFrameFormat.setAnchoringType definieert hoe tekst verticaal binnen een vorm wordt gepositioneerd, bijvoorbeeld bovenaan, in het midden of onderaan.
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();
}
Tabs voor tekst instellen
Gebruik IParagraphFormat.setDefaultTabSize en IParagraphFormat.getTabs om tab‑stops in een alinea te configureren.
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();
}
Het resultaat:

Correctietaal instellen
Aspose.Slides biedt IBasePortionFormat.setLanguageId, waarmee u de correctietaal voor een tekstgedeelte kunt instellen. De correctietaal bepaalt welke taal wordt gebruikt voor spelling‑ en grammaticacontrole in PowerPoint.
De volgende code‑voorbeeld toont hoe u de correctietaal voor een tekstgedeelte instelt:
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);
// Stel de ID van een correctietaal in.
textPortion.getPortionFormat().setLanguageId("zh-CN");
textPortion.setText("1。");
paragraph.getPortions().add(textPortion);
presentation.save("proofing_language.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Standaardtaal instellen
Gebruik LoadOptions.setDefaultTextLanguage om de standaardtaal te definiëren voor tekst die wordt aangemaakt tijdens het laden of maken van een presentatie.
LoadOptions loadOptions = new LoadOptions();
loadOptions.setDefaultTextLanguage("en-US");
Presentation presentation = new Presentation(loadOptions);
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Voeg een nieuw rechthoekvorm toe met tekst.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 20, 150, 50);
shape.getTextFrame().setText("Sample text");
// Controleer de taal van het eerste gedeelte.
IPortion portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0);
System.out.println(portion.getPortionFormat().getLanguageId());
} finally {
presentation.dispose();
}
Standaardtekstopmaak instellen
Om standaardtekstopmaak op presentatieniveau toe te passen, gebruikt u IPresentation.getDefaultTextStyle.
De volgende code‑voorbeeld toont hoe u een standaard vet lettertype met een grootte van 14 pt instelt voor alle tekst op alle dia’s in een nieuwe presentatie.
Presentation presentation = new Presentation();
try {
// Haal het alineaformaat van het hoogste niveau op.
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();
}
Tekst extraheren met het All‑Caps‑effect
In PowerPoint zorgt het toepassen van het All Caps‑lettertype‑effect ervoor dat tekst in hoofdletters wordt weergegeven op de dia, zelfs wanneer deze oorspronkelijk in kleine letters werd getypt. Wanneer u een dergelijk tekstgedeelte met Aspose.Slides ophaalt, retourneert de bibliotheek de tekst precies zoals ingevoerd. Om de weergegeven tekst te laten overeenkomen, controleert u TextCapType en zet u de geretourneerde tekenreeks om in hoofdletters wanneer de waarde All is.
Stel dat we het volgende tekstvak hebben op de eerste dia van het bestand sample2.pptx.

Het code‑voorbeeld hieronder toont hoe u de tekst extrahert met het All Caps‑effect toegepast:
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();
}
Uitvoer:
Original text: Hello, Aspose!
All-Caps effect: HELLO, ASPOSE!
FAQ
Hoe wijzig ik tekst in een tabel op een dia?
Gebruik ITable om tekst in een tabel op een dia te wijzigen. Doorloop de cellen en werk elke cel bij via ICell.getTextFrame en stel de alinea‑opmaak in via IParagraph.getParagraphFormat.
Hoe pas ik een verloopkleur toe op tekst in een PowerPoint‑dia?
Gebruik IBasePortionFormat.getFillFormat om een verloopkleur toe te passen op tekst. Stel IFillFormat.setFillType in op FillType.Gradient en configureer de verloopstops, richting en transparantie.