Formatera presentationstext i .NET
Översikt
Den här artikeln visar hur man formaterar text i PowerPoint‑ och OpenDocument‑presentationer med Aspose.Slides för .NET. Den täcker bakgrundsfärger, transparens, teckenavstånd, teckensnittsegenskaper, rotation, styckeavstånd, autofit‑beteende, textankring, tabbpositioner och språkinställningar.
Om inget annat anges använder exemplen sample.pptx. Den första formen på den första bilden är en textruta, och dess första stycke innehåller texten som visas nedan. Både bild‑ och formindex är nollbaserade. Exempel som markerar tjocka (bold) delar använder effektiv formatering, inklusive ärvd tjock formatering:

För att hitta och markera bokstavlig text eller reguljära uttryck, se Sök och ersätt text.
Ange bakgrundsfärg för text
Använd IParagraphFormat.DefaultPortionFormat för att ange standardmarkeringsfärg för ett stycke, eller använd IBasePortionFormat.HighlightColor för enskilda textdelar.
Följande exempel anger en ljusgrå markering som standard för det första stycket. Explicita markeringsfärger på enskilda delar har företräde framför denna standard:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.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 ett fetstilat teckensnitt:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.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 texstycken
Använd IParagraphFormat.Alignment för att ange styckejustering inom en textram. Värdet kan vara centrerat, vänsterjusterat, högerjusterat, blockjusterat med mera.
Följande kodexempel visar hur man justerar stycket till centrum:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Ange styckets justering till centrum.
paragraph.ParagraphFormat.Alignment = TextAlignment.Center;
presentation.Save("aligned_paragraph.pptx", SaveFormat.Pptx);
Resultatet:

Justera teckensnitt inom en rad
Använd IParagraphFormat.FontAlignment för att vertikalt justera textdelar med olika teckensnittsstorlekar inom en rad. Denna inställning gäller hela stycket och styr justeringen inom varje rad.
Följande självständiga exempel skapar fyra märkta textrutor på en bild. Varje stycke innehåller samma text i 18, 36 och 54 punkter, med olika teckensnittjustering. Det använder Arial, inaktiverar autofit och radbrytning, och håller textramarna tillräckligt stora för en enda rad.
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var alignments = new[] { FontAlignment.Baseline, FontAlignment.Top, FontAlignment.Center, FontAlignment.Bottom };
var fontSizes = new[] { 18f, 36f, 54f };
for (var i = 0; i < alignments.Length; i++)
{
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 30, 20 + i * 130, 660, 120);
shape.FillFormat.FillType = FillType.NoFill;
shape.LineFormat.FillFormat.FillType = FillType.NoFill;
var textFrame = shape.TextFrame;
textFrame.TextFrameFormat.AnchoringType = TextAnchorType.Top;
textFrame.TextFrameFormat.AutofitType = TextAutofitType.None;
textFrame.TextFrameFormat.WrapText = NullableBool.False;
var label = textFrame.Paragraphs[0];
label.Text = alignments[i].ToString();
label.ParagraphFormat.Alignment = TextAlignment.Left;
label.ParagraphFormat.DefaultPortionFormat.FontHeight = 14;
label.ParagraphFormat.DefaultPortionFormat.LatinFont = new FontData("Arial");
label.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
label.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Gray;
var paragraph = new Paragraph();
paragraph.ParagraphFormat.FontAlignment = alignments[i];
paragraph.ParagraphFormat.Alignment = TextAlignment.Left;
paragraph.ParagraphFormat.DefaultPortionFormat.LatinFont = new FontData("Arial");
paragraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
paragraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
foreach (var fontSize in fontSizes)
{
var portion = new Portion("Ag ");
portion.PortionFormat.FontHeight = fontSize;
paragraph.Portions.Add(portion);
}
textFrame.Paragraphs.Add(paragraph);
}
presentation.Save("font_alignment.pptx", SaveFormat.Pptx);
Resultatet:

Teckensnittjustering använder fontmetriker, så de synliga kanterna på enskilda bokstäver nödvändigtvis inte exakt linjerar. Exemplet innehåller både en versal bokstav och en nedre del av en bokstav för att tydliggöra skillnaden mellan baseline‑ och bottom‑justering. Tillgänglighet och substitution av teckensnitt, de använda tecknen samt skillnaden i teckensnittsstorlek påverkar resultatet. Ramstorlek, marginaler, radavstånd, radbrytning och autofit påverkar också layouten; använd samma teckensnitt och layoutinställningar när du jämför lägen.
Denna inställning skiljer sig från IParagraphFormat.Alignment, som styr horisontell styckejustering, och ITextFrameFormat.AnchoringType, som placerar textblocket vertikalt inom sin form. Upphöjd och nedsänkt formatering via IBasePortionFormat.Escapement förflyttar enskilda delar relativt baslinjen i stället för att ställa in teckensnittjustering för styckenas rader.
Ange transparens för text
Texttransparens kontrolleras via alfakomponenten i färgen som tilldelas IBasePortionFormat.FillFormat. I exemplen nedan är alpha = 50 ett ARGB‑alfavärde på skalan 0–255, inte en transparensprocent.
Kodexemplet nedan visar hur man applicerar transparens på hela stycket:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
var alpha = 50;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Ange en semitransparent svart fyllning för texten.
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 ett fetstilat teckensnitt:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
var alpha = 50;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
foreach (var portion in paragraph.Portions)
{
if (portion.PortionFormat.GetEffective().FontBold)
{
// Ange 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. Exemplen lägger till 3 punkter av avstånd; negativa värden komprimerar texten.
Följande C#‑kod visar hur man ökar teckenavståndet i hela stycket:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Obs: Använd negativa värden för att komprimera teckenavståndet.
paragraph.ParagraphFormat.DefaultPortionFormat.Spacing = 3; // Utöka teckenavståndet.
presentation.Save("character_spacing_in_paragraph.pptx", SaveFormat.Pptx);
Resultatet:

Kodexemplet nedan visar hur man ökar teckenavståndet i textdelar med ett fetstilat teckensnitt:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.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; // Utöka teckenavståndet.
}
}
presentation.Save("character_spacing_in_text_portions.pptx", SaveFormat.Pptx);
Resultatet:

Inaktivera kerning för specifika teckensnitt
I vissa fall kan text som renderas av Aspose.Slides se något tajtare ut än samma text i PowerPoint. Detta kan inträffa eftersom PowerPoint kan ignorera kerningdata för vissa teckensnitt, även när teckensnittet innehåller giltig kerninginformation och kerning är aktiverat i PowerPoint‑inställningarna.
För att få den renderade utmatningen att närmare motsvara PowerPoint i sådana fall kan du inaktivera kerning för textdelar som använder det berörda teckensnittet. Ange IBasePortionFormat.KerningMinimalSize till ett värde som är större än den faktiska teckensnittsstorleken. Detta exempel kräver “presentation.pptx” med en textruta som den första formen på den första bilden. Det kontrollerar effektivt teckensnittsnamn, inklusive ärvda teckensnitt, och sätter ett tröskelvärde på 100 punkter för delar som använder Roboto. Detta inaktiverar kerning för matchande delar med en teckensnittsstorlek under 100 punkter:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.Shapes[0];
var targetFont = "Roboto";
foreach (var paragraph in autoShape.TextFrame.Paragraphs)
{
foreach (var portion in paragraph.Portions)
{
var textFormat = portion.PortionFormat.GetEffective();
var usesTargetFont = textFormat.LatinFont?.FontName == targetFont ||
textFormat.EastAsianFont?.FontName == targetFont ||
textFormat.ComplexScriptFont?.FontName == targetFont;
if (usesTargetFont)
{
portion.PortionFormat.KerningMinimalSize = 100;
}
}
}
presentation.Save("output.pptx", SaveFormat.Pptx);
För matchande text under tröskeln förhindrar denna inställning kerning och kan hjälpa till att få Aspose.Slides‑renderingen att överensstämma med PowerPoints visuella utdata för teckensnitt som påverkas av detta PowerPoint‑specifika beteende.
Hantera teckensnittsegenskaper för text
Teckensnittsegenskaper kan anges på styckennivå via IParagraphFormat.DefaultPortionFormat eller på enskilda delar via IPortionFormat.
Följande exempel anger det första styckets standardteckensnitt till 12 punkts Times New Roman med fetstil, kursiv och prickad understrykning. Explicit formatering på enskilda delar har företräde framför dessa standardvärden:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// Ange teckensnittsegenskaperna för stycket.
var portionFormat = paragraph.ParagraphFormat.DefaultPortionFormat;
portionFormat.FontHeight = 12;
portionFormat.FontBold = NullableBool.True;
portionFormat.FontItalic = NullableBool.True;
portionFormat.FontUnderline = TextUnderlineType.Dotted;
portionFormat.LatinFont = new FontData("Times New Roman");
presentation.Save("font_properties_for_paragraph.pptx", SaveFormat.Pptx);
Resultatet:

Följande exempel applicerar 13 punkts Times New Roman, kursiv och prickad understrykning på delar vars effektiv formatering är fetstil:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.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 textriktning inom en form.
Följande kodexempel anger textriktningen i formen till TextVerticalType.Vertical270, vilket roterar texten 90 grader moturs:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.Shapes[0];
autoShape.TextFrame.TextFrameFormat.TextVerticalType = TextVerticalType.Vertical270;
presentation.Save("text_rotation.pptx", SaveFormat.Pptx);
Resultatet:

Ange anpassad rotation för textramar
Använd ITextFrameFormat.RotationAngle för att ange en egen rotationsvinkel för ett ITextFrame.
Kodexemplet nedan roterar textramen 3 grader medurs inom formen:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.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 så här:
- Använd ett positivt värde för att ange radavstånd som en procentandel av radens höjd.
- Använd ett negativt värde för att ange radavstånd i punkter.
Följande exempel anger avstånd inom det första stycket till 200 % av radens höjd (dubbelradavstånd):
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
paragraph.ParagraphFormat.SpaceWithin = 200;
presentation.Save("line_spacing.pptx", SaveFormat.Pptx);
Resultatet:

Styr radbrytning
Regler för radbrytning i stycken är användbara i smala textblock och presentationer som blandar latin och östasiatisk text. Följande egenskaper tillhör IParagraphFormat, så de gäller för hela stycket:
- LatinLineBreak styr latinbaserade radbrytningsregler. I blandad text kan ändring av detta också påverka var omgivande östasiatisk text och skiljetecken bryts.
- EastAsianLineBreak styr östasiatiska radbrytningsregler, inklusive restriktioner för tecken i början och slutet av en rad.
Dessa regler ersätter inte ITextFrameFormat.WrapText, som möjliggör automatisk radbrytning inom en textram. De påverkar layouten när radbrytning sker; de infogar inte radbrytningstecken. En explicit radbrytning tvingar en ny rad i stycket oberoende av tillgänglig bredd.
Följande självständiga exempel skapar ett smalt textblock som innehåller kinesisk och latin text. Det anger båda radbrytningsegenskaperna explicit och sparar line_breaking.pptx. För att experimentera med någon av reglerna, ändra den respektive egenskapens värde medan de andra inställningarna lämnas oförändrade. Exemplet använder 24‑punkts Arial och SimSun med en ramvidd på 160 punkter och noll horisontella textram‑marginaler. ITextFrameFormat.AutofitType är satt till TextAutofitType.None så att textstorlek och ramdimensioner förblir fasta.
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 160, 300);
shape.FillFormat.FillType = FillType.NoFill;
var textFrame = shape.TextFrame;
textFrame.TextFrameFormat.WrapText = NullableBool.True;
textFrame.TextFrameFormat.AutofitType = TextAutofitType.None;
textFrame.TextFrameFormat.MarginLeft = 0;
textFrame.TextFrameFormat.MarginRight = 0;
var paragraph = textFrame.Paragraphs[0];
paragraph.Text = "中文排版测试,PowerPoint 中文演示。";
var format = paragraph.ParagraphFormat;
format.Alignment = TextAlignment.Left;
format.DefaultPortionFormat.FontHeight = 24;
format.DefaultPortionFormat.LatinFont = new FontData("Arial");
format.DefaultPortionFormat.EastAsianFont = new FontData("SimSun");
format.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
format.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
format.LatinLineBreak = NullableBool.False;
format.EastAsianLineBreak = NullableBool.True;
presentation.Save("line_breaking.pptx", SaveFormat.Pptx);
Styr hängande interpunktion
IParagraphFormat.HangingPunctuation låter berättigad interpunktion sträcka sig förbi textradens högra kant i stället för att ta nästa rad. Den gäller för hela stycket och är annorlunda än ett hängande indrag.
Följande självständiga exempel aktiverar hängande interpunktion i en 100‑punkts bred textram och sparar hanging_punctuation.pptx. Med 24‑punkts Arial och noll horisontella textram‑marginaler förblir den sista punkten efter ordet “sentence” och sträcker sig förbi den högra textkanten. Ställ in egenskapen till NullableBool.False för att jämföra: med dessa inställningar hamnar punkten på en egen rad. Radbrytning är aktiverad och autofit är inaktiverat för att hålla den tillgängliga bredden fast.
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 100, 200);
shape.FillFormat.FillType = FillType.NoFill;
var textFrame = shape.TextFrame;
textFrame.TextFrameFormat.WrapText = NullableBool.True;
textFrame.TextFrameFormat.AutofitType = TextAutofitType.None;
textFrame.TextFrameFormat.MarginLeft = 0;
textFrame.TextFrameFormat.MarginRight = 0;
var paragraph = textFrame.Paragraphs[0];
paragraph.Text = "Simple text, next sentence.";
var format = paragraph.ParagraphFormat;
format.Alignment = TextAlignment.Left;
format.DefaultPortionFormat.FontHeight = 24;
format.DefaultPortionFormat.LatinFont = new FontData("Arial");
format.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
format.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
format.HangingPunctuation = NullableBool.True;
presentation.Save("hanging_punctuation.pptx", SaveFormat.Pptx);
Inte varje skiljetecken kan hänga. Font‑ och layoutvillkoren som beskrivs ovan gäller även för denna jämförelse: ändring av teckensnitt, tillgänglig bredd, marginaler eller autofit‑inställningar kan ta bort den synliga skillnaden.
Ange Autofit‑typ för textramar
ITextFrameFormat.AutofitType bestämmer hur text beter sig när den överskrider behållarens gränser. Använd den för att styra om texten ska krympas, flöda över eller om formen automatiskt ska anpassas. Följande exempel konfigurerar formen att ändra storlek för att passa sin text och sparar resultatet till autofit_type.pptx.
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.Shapes[0];
autoShape.TextFrame.TextFrameFormat.AutofitType = TextAutofitType.Shape;
presentation.Save("autofit_type.pptx", SaveFormat.Pptx);
För att räkna rader efter automatisk radbrytning och se hur text‑ eller formbredd ändrar resultatet, se Count Rendered Lines. Radräkning ensam visar inte om texten överskrider behållaren.
Ange ankare för textramar
ITextFrameFormat.AnchoringType definierar hur text placeras vertikalt inuti en form, t.ex. längst upp, i mitten eller längst ner. Följande exempel förankrar texten till botten av den första formen och sparar resultatet till text_anchor.pptx.
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.Shapes[0];
autoShape.TextFrame.TextFrameFormat.AnchoringType = TextAnchorType.Bottom;
presentation.Save("text_anchor.pptx", SaveFormat.Pptx);
Ange tabbulation för text
Använd IParagraphFormat.DefaultTabSize och IParagraphFormat.Tabs för att konfigurera tabbpositioner i ett stycke. Följande exempel sätter standardtabbstorleken till 100 punkter och lägger till en vänsterjusterad tabb vid 30 punkter. Dessa inställningar påverkar text som innehåller tabbtecken.
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.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 språk för korrekturläsning
Aspose.Slides tillhandahåller IBasePortionFormat.LanguageId, som låter dig ange språk för korrekturläsning för en textdel. Språket för korrekturläsning avgör vilket språk som används för stavnings‑ och grammatikkontroller i PowerPoint.
Följande exempel kräver “presentation.pptx” med en textruta som den första formen på den första bilden och minst ett stycke. Det ersätter innehållet i det första stycket med “1。”, sätter SimSun som teckensnitt och tilldelar språk för förenklad kinesisk korrekturläsning (zh-CN). Resultatet sparas till proofing_language.pptx:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.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;
// Ange korrekturläsningsspråket till förenklad kinesiska.
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 under inläsning eller skapande av en presentation. Följande exempel skapar en presentation med amerikansk engelska som standardspråk för text, lägger till en textruta och skriver ut en-US för dess första textdel.
using System;
using Aspose.Slides;
var loadOptions = new LoadOptions();
loadOptions.DefaultTextLanguage = "en-US";
using var presentation = new Presentation(loadOptions);
var slide = presentation.Slides[0];
// Lägg till en ny rektangelform 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 delen.
var portion = shape.TextFrame.Paragraphs[0].Portions[0];
Console.WriteLine(portion.PortionFormat.LanguageId);
Ange standardtextstil
För att applicera standardtextformatering på presentationsnivå, använd IPresentation.DefaultTextStyle.
Följande exempel sätter ett 14‑punkts fetstilat teckensnitt som standard för toppnivå‑stycken i en ny presentation och sparar den till default_text_style.pptx. Text kan ärva dessa standardvärden såvida inte mer specifik formatering åsidosätter dem.
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
// Hämta formatet för stycket på toppnivå.
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”-teckenseffekten att text visas med versaler på bilden även när den ursprungligen skrevs med gemener. 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.
Detta exempel kräver “sample2.pptx” med en textruta som den första formen på den första bilden. Dess första stycke‑första del innehåller “Hello, Aspose!” med All Caps‑effekten applicerad, som visas nedan.

Kodexemplet nedan visar hur man extraherar texten med All Caps‑effekt:
using System;
using Aspose.Slides;
using var presentation = new Presentation("sample2.pptx");
var slide = presentation.Slides[0];
var autoShape = (IAutoShape)slide.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 jag 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 samt styckeformatering via IParagraph.ParagraphFormat.
Hur applicerar jag en gradientfärg på text i en PowerPoint‑bild?
För att applicera en gradientfärg på text, använd IBasePortionFormat.FillFormat. Ange IFillFormat.FillType till FillType.Gradient och konfigurera gradientstopp, riktning och transparens.