Tekst opmaken in presentaties met .NET

Overzicht

Dit artikel toont hoe u tekst kunt opmaken in PowerPoint‑ en OpenDocument‑presentaties met Aspose.Slides voor .NET. Het behandelt achtergrondkleuren, transparantie, tekenafstand, lettertype‑eigenschappen, rotatie, alinea‑afstand, autofit‑gedrag, tekst‑ankering, tab‑stops en taalinstellingen.

In de voorbeelden hieronder gebruiken we een bestand met de naam “sample.pptx”, dat op de eerste dia één tekstvak bevat met de volgende tekst:

Voorbeeldtekst

Om letterlijke tekst of reguliere‑expressie‑overeenkomsten te vinden en te markeren, zie Zoeken en vervangen van tekst.

Achtergrondkleur van tekst instellen

Gebruik IParagraphFormat.DefaultPortionFormat om de standaard markeerkleur voor een alinea in te stellen, of gebruik IBasePortionFormat.HighlightColor voor individuele tekstgedeelten.

De volgende code‑voorbeeld toont hoe u de achtergrondkleur voor de hele alinea instelt:

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];

    // Stel de markeerkleur in voor de hele alinea.
    paragraph.ParagraphFormat.DefaultPortionFormat.HighlightColor.Color = Color.LightGray;

    presentation.Save("gray_paragraph.pptx", SaveFormat.Pptx);
}

Het resultaat:

De grijze alinea

De code‑voorbeeld hieronder laat zien hoe u de achtergrondkleur voor tekstgedeelten met een vet lettertype instelt:

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)
        {
            // Stel de markeerkleur in voor het tekstgedeelte.
            portion.PortionFormat.HighlightColor.Color = Color.LightGray;
        }
    }

    presentation.Save("gray_text_portions.pptx", SaveFormat.Pptx);
}

Het resultaat:

De grijze tekstgedeelten

Tekst‑alinea’s uitlijnen

Gebruik IParagraphFormat.Alignment om de alinea‑uitlijning binnen een tekstkader in te stellen. De waarde kan gecentreerd, links‑uitgelijnd, rechts‑uitgelijnd, uitgevuld, enz. zijn.

De volgende code‑voorbeeld toont hoe u de alinea naar het midden centreert:

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];

    // Stel de uitlijning van de alinea in op centreren.
    paragraph.ParagraphFormat.Alignment = TextAlignment.Center;

    presentation.Save("aligned_paragraph.pptx", SaveFormat.Pptx);
}

Het resultaat:

De uitgelijnde alinea

Transparantie voor tekst instellen

Transparantie van tekst wordt geregeld via het alfa‑component van de kleur die is toegewezen aan IBasePortionFormat.FillFormat. In de voorbeelden hieronder is alpha = 50 een ARGB‑alfakanaalwaarde op de schaal 0–255, geen transparantiepercentage.

De code‑voorbeeld hieronder laat zien hoe u transparantie toepast op de hele alinea:

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];

    // Stel de opvulkleur van de tekst in op een transparante kleur.
    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);
}

Het resultaat:

De transparante alinea

De volgende code‑voorbeeld toont hoe u transparantie toepast op tekstgedeelten met een vet lettertype:

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)
        {
            // Stel de transparantie van het tekstgedeelte in.
            portion.PortionFormat.FillFormat.FillType = FillType.Solid;
            portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(alpha, Color.Black);
        }
    }

    presentation.Save("transparent_text_portions.pptx", SaveFormat.Pptx);
}

Het resultaat:

De transparante tekstgedeelten

Tekenafstand voor tekst instellen

Gebruik IBasePortionFormat.Spacing om de afstand tussen tekens in een tekstvak uit te breiden of te verkleinen.

De volgende C#‑code toont hoe u de tekenafstand in de hele alinea vergroot:

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];

    // Opmerking: gebruik negatieve waarden om de tekenafstand samen te drukken.
    paragraph.ParagraphFormat.DefaultPortionFormat.Spacing = 3;  // Vergroot de tekenafstand.

    presentation.Save("character_spacing_in_paragraph.pptx", SaveFormat.Pptx);
}

Het resultaat:

De tekenafstand in de alinea

De code‑voorbeeld hieronder toont hoe u de tekenafstand vergroot in tekstgedeelten met een vet lettertype:

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)
        {
            // Opmerking: gebruik negatieve waarden om de tekenafstand samen te drukken.
            portion.PortionFormat.Spacing = 3;  // Vergroot de tekenafstand.
        }
    }

    presentation.Save("character_spacing_in_text_portions.pptx", SaveFormat.Pptx);
}

Het resultaat:

De tekenafstand in de tekstgedeelten

Kerning voor specifieke lettertypen 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 lettertypen negeert, zelfs wanneer het lettertype geldige kerning‑informatie bevat en kerning is ingeschakeld in de PowerPoint‑instellingen.

Om de gerenderde uitvoer in dergelijke gevallen dichter bij PowerPoint te brengen, kunt u kerning uitschakelen voor tekstgedeelten die het betreffende lettertype gebruiken. Stel IBasePortionFormat.KerningMinimalSize in op een waarde die aanzienlijk groter is dan de werkelijke lettergrootte:

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);
}

Deze instelling voorkomt dat kerning wordt toegepast op overeenkomende tekstgedeelten en kan helpen om de weergave van Aspose.Slides beter te laten overeenstemmen met de visuele uitvoer van PowerPoint voor lettertypen die door dit PowerPoint‑specifieke gedrag worden beïnvloed.

Lettertype‑eigenschappen van tekst beheren

Lettertype‑eigenschappen kunnen op alinea‑niveau worden ingesteld via IParagraphFormat.DefaultPortionFormat 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.

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];

    // Stel de lettertype-eigenschappen voor de alinea in.
    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);
}

Het resultaat:

De lettertype‑eigenschappen voor de alinea

De code‑voorbeeld hieronder past vergelijkbare eigenschappen toe op tekstgedeelten met een vet lettertype:

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)
        {
            // Stel de lettertype-eigenschappen voor het tekstgedeelte in.
            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);
}

Het resultaat:

De lettertype‑eigenschappen voor tekstgedeelten

Tekstrotatie instellen

Gebruik ITextFrameFormat.TextVerticalType 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 gedraaid:

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);
}

Het resultaat:

De tekstrotatie

Aangepaste rotatie voor tekstkaders instellen

Gebruik ITextFrameFormat.RotationAngle om een aangepaste rotatiehoek in te stellen voor een ITextFrame.

De code‑voorbeeld hieronder roteert het tekstkader met 3 graden met de klok mee binnen de vorm:

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);
}

Het resultaat:

De aangepaste tekstrotatie

Regelafstand van alinea’s instellen

Aspose.Slides biedt IParagraphFormat.SpaceAfter, IParagraphFormat.SpaceBefore en IParagraphFormat.SpaceWithin om de 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:

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);
}

Het resultaat:

De regelafstand binnen de alinea

Autofit‑type voor tekstkaders instellen

ITextFrameFormat.AutofitType bepaalt hoe tekst zich gedraagt wanneer deze de grenzen van zijn container overschrijdt. Gebruik het om te bepalen of de tekst kleiner wordt, overloopt of de vorm automatisch schaalt.

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 van tekstkaders instellen

ITextFrameFormat.AnchoringType definieert hoe tekst verticaal binnen een vorm wordt gepositioneerd, bijvoorbeeld bovenaan, in het midden of onderaan.

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);
}

Tabulatie voor tekst instellen

Gebruik IParagraphFormat.DefaultTabSize en IParagraphFormat.Tabs om tab‑stops in een alinea te configureren.

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);
}

Het resultaat:

De alinea‑tabs

Controlertaal instellen

Aspose.Slides biedt IBasePortionFormat.LanguageId, waarmee u de controlertaal voor een tekstgedeelte kunt instellen. De controlertaal bepaalt welke taal wordt gebruikt voor spelling‑ en grammaticacontrole in PowerPoint.

De volgende code‑voorbeeld toont hoe u de controlertaal voor een tekstgedeelte instelt:

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;

    // Stel de Id van een controletaal in.
    textPortion.PortionFormat.LanguageId = "zh-CN";

    textPortion.Text = "1。";
    paragraph.Portions.Add(textPortion);

    presentation.Save("proofing_language.pptx", SaveFormat.Pptx);
}

Standaardtaal instellen

Gebruik LoadOptions.DefaultTextLanguage om de standaardtaal te definiëren voor tekst die wordt aangemaakt tijdens het laden of maken van een presentatie.

using Aspose.Slides;

var loadOptions = new LoadOptions();
loadOptions.DefaultTextLanguage = "en-US";

using (var presentation = new Presentation(loadOptions))
{
    var slide = presentation.Slides[0];

    // Voeg een nieuw rechthoekvorm toe met tekst.
    var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 20, 20, 150, 50);
    shape.TextFrame.Text = "Sample text";

    // Controleer de taal van het eerste gedeelte.
    var portion = shape.TextFrame.Paragraphs[0].Portions[0];
    Console.WriteLine(portion.PortionFormat.LanguageId);
}

Standaardtekstopmaak instellen

Om standaard‑tekstopmaak op presentatieniveau toe te passen, gebruik IPresentation.DefaultTextStyle.

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.

using Aspose.Slides;
using Aspose.Slides.Export;

using (var presentation = new Presentation())
{
    // Haal het alineaformaat van het hoogste niveau op.
    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);
}

Tekst met All‑Caps‑effect extraheren

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 met kleine letters is getypt. Wanneer u een dergelijk tekstgedeelte ophaalt met Aspose.Slides, retourneert de bibliotheek de tekst precies zoals ingevoerd. Om overeen te komen met de weergegeven tekst, controleer TextCapType en converteer de geretourneerde tekenreeks naar hoofdletters wanneer de waarde All is.

Stel dat we het volgende tekstvak hebben op de eerste dia van het bestand sample2.pptx.

Het All Caps‑effect

De code‑voorbeeld hieronder toont hoe u de tekst mets All Caps‑effect kunt extraheren:

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}");
    }
}

Uitvoer:

Original text: Hello, Aspose!
All-Caps effect: HELLO, ASPOSE!

FAQ

Hoe kun je tekst in een tabel op een dia aanpassen?

Om tekst in een tabel op een dia aan te passen, gebruik ITable. Doorloop de cellen en werk elke cel bij via ICell.TextFrame en de alinea‑opmaak via IParagraph.ParagraphFormat.

Hoe kun je een kleurverloop toepassen op tekst in een PowerPoint‑dia?

Om een kleurverloop op tekst toe te passen, gebruik IBasePortionFormat.FillFormat. Stel IFillFormat.FillType in op FillType.Gradient en configureer de verloop‑stops, richting en transparantie.