Formatera presentationstext i .NET
Översikt
Denna artikel visar hur man formaterar text i PowerPoint- och OpenDocument-presentationer med Aspose.Slides för .NET. Den täcker markering, bakgrundsfärger, transparens, teckenavstånd, teckensnittsegenskaper, rotation, styckeavstånd, autofit‑beteende, textförankring, tabbstopp och språkinställningar.
I exemplen nedan använder vi en fil med namnet “sample.pptx”, som innehåller en enda textruta på den första bilden med följande text:

Markera text
Använd ITextFrame.HighlightText när du behöver markera text som matchar ett specifikt exempel inom en textruta. Metoden applicerar en markeringsfärg på matchande textfragment och kan användas med TextSearchOptions för att styra hur sökningen utförs, till exempel för att bara matcha hela ord.
Kodexemplet nedan markerar alla förekomster av tecknen “try” och markerar sedan bara hela ordet “to”.
using (var presentation = new Presentation("sample.pptx"))
{
// Hämta den första formen från den första bilden.
var shape = (IAutoShape)presentation.Slides[0].Shapes[0];
// Markera ordet "try" i formen.
shape.TextFrame.HighlightText("try", Color.LightBlue);
var searchOptions = new TextSearchOptions()
{
WholeWordsOnly = true
};
// Markera ordet "to" i formen.
shape.TextFrame.HighlightText("to", Color.Violet, searchOptions, null);
presentation.Save("highlighted_text.pptx", SaveFormat.Pptx);
}
Resultatet:

Markera text med reguljära uttryck
Metoden ITextFrame.HighlightRegex markerar textmatchningar som hittas med ett reguljärt uttryck. I .NET exponeras detta API på ITextFrame.
Kodexemplet nedan markerar alla ord som innehåller sju eller fler tecken:
using (var presentation = new Presentation(folderPath + "sample.pptx"))
{
var shape = (IAutoShape)presentation.Slides[0].Shapes[0];
var regex = new Regex(@"\b[^\s]{7,}\b");
// Markera alla ord med sju eller fler tecken.
shape.TextFrame.HighlightRegex(regex, Color.Yellow, null);
presentation.Save(folderPath + "highlighted_text_using_regex.pptx", SaveFormat.Pptx);
}
Resultatet:

Ange bakgrundsfärg för text
Använd IParagraphFormat.DefaultPortionFormat för att ange standardmarkeringsfärg för ett stycke, eller använd IPortionFormat.HighlightColor för enskilda textdelar.
Följande kodexempel visar hur man anger bakgrundsfärg för hela stycket:
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Ange markeringsfärgen för hela stycket.
paragraph.ParagraphFormat.DefaultPortionFormat.HighlightColor.Color = Color.LightGray;
presentation.Save("gray_paragraph.pptx", SaveFormat.Pptx);
}
Resultatet:

Kodexemplet nedan demonstrerar hur man anger bakgrundsfärg för textdelar med fet stil:
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)
{
// Ange markeringsfärgen för textdelen.
portion.PortionFormat.HighlightColor.Color = Color.LightGray;
}
}
presentation.Save("gray_text_portions.pptx", SaveFormat.Pptx);
}
Resultatet:

Justera textstycken
Använd IParagraphFormat.Alignment för att ställa in styckejustering inom en textruta. Värdet kan vara centrerat, vänsterjusterat, högerjusterat, blockjusterat med mera.
Följande kodexempel visar hur man justerar stycket till centrum:
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Ställ in styckejusteringen till centrerad.
paragraph.ParagraphFormat.Alignment = TextAlignment.Center;
presentation.Save("aligned_paragraph.pptx", SaveFormat.Pptx);
}
Resultatet:

Ange transparens för text
Texttransparens styrs via alfakomponenten i färgen som tilldelas IPortionFormat.FillFormat. I exemplen nedan är alpha = 50 ett ARGB‑alfavärde på 0–255‑skalan, inte en procentuell transparens.
Kodexemplet nedan visar hur man applicerar transparens på hela stycket:
int alpha = 50;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Ställ in fyllningsfärgen för texten till transparent färg.
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);
}
Resultatet:

Följande kodexempel visar hur man applicerar transparens på textdelar med fet stil:
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)
{
// Ställ in transparensen för textdelen.
portion.PortionFormat.FillFormat.FillType = FillType.Solid;
portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(alpha, Color.Black);
}
}
presentation.Save("transparent_text_portions.pptx", SaveFormat.Pptx);
}
Resultatet:

Ange teckenavstånd för text
Använd IBasePortionFormat.Spacing för att öka eller minska avståndet mellan tecken i en textruta.
Följande C#‑kod visar hur man ökar teckenavståndet i hela stycket:
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Obs: Använd negativa värden för att minska teckenavståndet.
paragraph.ParagraphFormat.DefaultPortionFormat.Spacing = 3; // Öka teckenavståndet.
presentation.Save("character_spacing_in_paragraph.pptx", SaveFormat.Pptx);
}
Resultatet:

Kodexemplet nedan visar hur man ökar teckenavståndet i textdelar med fet stil:
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)
{
// Obs: Använd negativa värden för att komprimera teckenavståndet.
portion.PortionFormat.Spacing = 3; // Öka teckenavståndet.
}
}
presentation.Save("character_spacing_in_text_portions.pptx", SaveFormat.Pptx);
}
Resultatet:

Inaktivera kerning för specifika typsnitt
I vissa fall kan text som renderas av Aspose.Slides se något tajtare ut än samma text i PowerPoint. Detta kan ske eftersom PowerPoint kan ignorera kerningdata för vissa typsnitt, även när typsnittet innehåller giltig kerninginformation och kerning är aktiverat i PowerPoints inställningar.
För att få den renderade utmatningen att bättre motsvara PowerPoint i sådana fall kan du inaktivera kerning för textdelar som använder det berörda typsnittet. Sätt IPortionFormat.KerningMinimalSize till ett värde som är betydligt större än den faktiska typsnittsstorleken:
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);
}
Denna inställning förhindrar att kerning tillämpas på matchande textdelar och kan hjälpa Aspose.Slides‑rendering att likna PowerPoints visuella resultat för de berörda typsnitten.
Hantera teckensnittsegenskaper för text
Teckensnittsegenskaper kan anges på styckelnivå via IParagraphFormat.DefaultPortionFormat eller på individuella delar via IPortionFormat.
Följande kod sätter teckensnitt och textstil för hela stycket: den applicerar teckenstorlek, fet, kursiv, prickad understrykning och teckensnittet Times New Roman på alla delar i stycket.
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Ange teckensnittsegenskaperna för stycket.
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);
}
Resultatet:

Kodexemplet nedan applicerar liknande egenskaper på textdelar med fet stil:
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)
{
// Ange teckensnittsegenskaperna för textdelen.
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);
}
Resultatet:

Ange textrotation
Använd ITextFrameFormat.TextVerticalType för att ange en fördefinierad textorientering inom en form.
Följande kodexempel sätter textorienteringen i formen till Vertical270, vilket roterar texten 90 grader moturs:
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);
}
Resultatet:

Ange anpassad rotation för textrutor
Använd ITextFrameFormat.RotationAngle för att ange en anpassad rotationsvinkel för en ITextFrame.
Kodexemplet nedan roterar textrutan med 3 grader medurs inom formen:
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);
}
Resultatet:

Ange radavstånd för stycken
Aspose.Slides tillhandahåller IParagraphFormat.SpaceAfter, IParagraphFormat.SpaceBefore och IParagraphFormat.SpaceWithin för att kontrollera styckeavstånd. Dessa egenskaper används enligt följande:
- Använd ett positivt värde för att ange radavstånd som en procentandel av radhöjden.
- Använd ett negativt värde för att ange radavstånd i punkt.
Följande kodexempel visar hur man anger radavståndet inom stycket:
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);
}
Resultatet:

Ange Autofit‑typ för textrutor
ITextFrameFormat.AutofitType bestämmer hur text beter sig när den överskrider ramarna för sin behållare. Använd den för att styra om texten ska krympas, flöda över eller automatiskt anpassa formen.
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);
}
Ange förankring för textrutor
ITextFrameFormat.AnchoringType definierar hur text placeras vertikalt i en form, exempelvis högst upp, i mitten eller längst ner.
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);
}
Ange tabulering för text
Använd IParagraphFormat.DefaultTabSize och IParagraphFormat.Tabs för att konfigurera tabbstopp i ett stycke.
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);
}
Resultatet:

Ange korrekturläsningsspråk
Aspose.Slides tillhandahåller IPortionFormat.LanguageId, vilket låter dig ange korrekturläsningsspråk för en textdel. Korrekturläsningsspråket bestämmer vilket språk som används för stavnings‑ och grammatikkontroller i PowerPoint.
Följande kodexempel visar hur man anger korrekturläsningsspråk för en textdel:
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;
// Ställ in Id för ett korrekturläsningsspråk.
textPortion.PortionFormat.LanguageId = "zh-CN";
textPortion.Text = "1。";
paragraph.Portions.Add(textPortion);
presentation.Save("proofing_language.pptx", SaveFormat.Pptx);
}
Ange standardspråk
Använd LoadOptions.DefaultTextLanguage för att definiera standardspråk för text som skapas vid inläsning eller skapande av en presentation.
var loadOptions = new LoadOptions();
loadOptions.DefaultTextLanguage = "en-US";
using (var presentation = new Presentation(loadOptions))
{
var slide = presentation.Slides[0];
// Lägg till en ny rektangulär form med text.
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 20, 20, 150, 50);
shape.TextFrame.Text = "Sample text";
// Kontrollera språk för den första textdelen.
var portion = shape.TextFrame.Paragraphs[0].Portions[0];
Console.WriteLine(portion.PortionFormat.LanguageId);
}
Ange standardtextstil
För att tillämpa standardtextformatering på presentationsnivå, använd IPresentation.DefaultTextStyle.
Följande kodexempel visar hur man ställer in ett standardfet typsnitt med storlek 14 pt för all text i en ny presentation.
using (var presentation = new Presentation())
{
// Hämta styckeformatet på högsta nivån.
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);
}
Extrahera text med “All Caps”-effekt
I PowerPoint gör All Caps‑effekten att text visas med stora bokstäver på bilden även om den ursprungligen skrevs med små bokstäver. När du hämtar en sådan textdel med Aspose.Slides returnerar biblioteket texten exakt som den angavs. För att matcha den visade texten, kontrollera TextCapType och konvertera den returnerade strängen till versaler när värdet är All.
Anta att vi har följande textruta på den första bilden i filen sample2.pptx.

Kodexemplet nedan visar hur man extraherar text med All Caps‑effekten applicerad:
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}");
}
}
Utdata:
Original text: Hello, Aspose!
All-Caps effect: HELLO, ASPOSE!
FAQ
Hur ändrar man text i en tabell på en bild?
För att ändra text i en tabell på en bild, använd ITable. Iterera genom cellerna och uppdatera varje cell via ICell.TextFrame och styckeformatering via IParagraph.ParagraphFormat.
Hur applicerar man gradientfärg på text i en PowerPoint‑bild?
För att applicera en gradientfärg på text, använd IPortionFormat.FillFormat. Ställ in IFillFormat.FillType på FillType.Gradient och konfigurera gradientstopp, riktning och transparens.