.NET में प्रस्तुति पाठ को फ़ॉर्मेट करें
समीक्षा
यह लेख Aspose.Slides for .NET का उपयोग करके PowerPoint और OpenDocument प्रस्तुतियों में पाठ को स्वरूपित करने का तरीका दिखाता है। इसमें हाइलाइटिंग, पृष्ठभूमि रंग, पारदर्शिता, अक्षर अंतराल, फ़ॉन्ट गुण, घुमाव, अनुच्छेद अंतराल, ऑटोफिट व्यवहार, पाठ एंकरिंग, टैब स्टॉप और भाषा सेटिंग शामिल हैं।
नीचे दिए गए उदाहरणों में, हम “sample.pptx” नामक फ़ाइल का उपयोग करेंगे, जिसमें पहली स्लाइड पर एकल पाठ बॉक्स है जिसमें निम्नलिखित पाठ है:

पाठ को हाइलाइट करें
जब आपको टेक्स्ट फ्रेम में किसी विशिष्ट नमूने से मेल खाने वाले पाठ को हाइलाइट करने की आवश्यकता हो तो आप ITextFrame.HighlightText मेथड का उपयोग करें। यह मेथड मिलते हुए पाठ अंशों पर हाइलाइट रंग लागू करता है और इसे TextSearchOptions के साथ उपयोग करके खोज के तरीके को नियंत्रित किया जा सकता है, उदाहरण के लिए केवल पूर्ण शब्दों से मेल करने के लिए।
नीचे दिया गया कोड उदाहरण अक्षरों “try” की सभी उपस्थितियों को हाइलाइट करता है और फिर केवल पूर्ण शब्द “to” को हाइलाइट करता है।
using (var presentation = new Presentation("sample.pptx"))
{
// पहली स्लाइड से पहला आकार प्राप्त करें।
var shape = (IAutoShape)presentation.Slides[0].Shapes[0];
// आकार में शब्द "try" को हाइलाइट करें।
shape.TextFrame.HighlightText("try", Color.LightBlue);
var searchOptions = new TextSearchOptions()
{
WholeWordsOnly = true
};
// आकार में शब्द "to" को हाइलाइट करें।
shape.TextFrame.HighlightText("to", Color.Violet, searchOptions, null);
presentation.Save("highlighted_text.pptx", SaveFormat.Pptx);
}
परिणाम:

नियमित अभिव्यक्तियों का उपयोग करके पाठ को हाइलाइट करें
ITextFrame.HighlightRegex मेथड नियमित अभिव्यक्ति द्वारा पाए गए पाठ मिलानों को हाइलाइट करता है। .NET में यह API ITextFrame पर उपलब्ध है।
नीचे दिया गया कोड उदाहरण उन सभी शब्दों को हाइलाइट करता है जिनमें सात या अधिक अक्षर हैं:
using (var presentation = new Presentation(folderPath + "sample.pptx"))
{
var shape = (IAutoShape)presentation.Slides[0].Shapes[0];
var regex = new Regex(@"\b[^\s]{7,}\b");
// सात या अधिक अक्षरों वाले सभी शब्दों को हाइलाइट करें।
shape.TextFrame.HighlightRegex(regex, Color.Yellow, null);
presentation.Save(folderPath + "highlighted_text_using_regex.pptx", SaveFormat.Pptx);
}
परिणाम:

पाठ की पृष्ठभूमि रंग सेट करें
पैराग्राफ के लिए डिफ़ॉल्ट हाइलाइट रंग सेट करने हेतु IParagraphFormat.DefaultPortionFormat का उपयोग करें, या व्यक्तिगत पाठ भागों के लिए IPortionFormat.HighlightColor का उपयोग करें।
निम्नलिखित कोड उदाहरण संपूर्ण पैराग्राफ के पृष्ठभूमि रंग को सेट करने का तरीका दर्शाता है:
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// पूरे पैराग्राफ के लिए हाइलाइट रंग सेट करें।
paragraph.ParagraphFormat.DefaultPortionFormat.HighlightColor.Color = Color.LightGray;
presentation.Save("gray_paragraph.pptx", SaveFormat.Pptx);
}
परिणाम:

नीचे दिया गया कोड उदाहरण बोल्ड फ़ॉन्ट वाले पाठ भागों के पृष्ठभूमि रंग को सेट करने का प्रदर्शन करता है:
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)
{
// पाठ भाग के लिए हाइलाइट रंग सेट करें।
portion.PortionFormat.HighlightColor.Color = Color.LightGray;
}
}
presentation.Save("gray_text_portions.pptx", SaveFormat.Pptx);
}
परिणाम:

पाठ अनुच्छेदों को संरेखित करें
टेक्स्ट फ्रेम के भीतर पैराग्राफ संरेखण सेट करने के लिए IParagraphFormat.Alignment का उपयोग करें। मान केंद्रित, बाएँ संरेखित, दाएँ संरेखित, दोनों ओर समान आदि हो सकता है।
निम्नलिखित कोड उदाहरण पैराग्राफ को केंद्र में संरेखित करने का तरीका दिखाता है:
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// पैराग्राफ की संरेखण को केंद्र में सेट करें।
paragraph.ParagraphFormat.Alignment = TextAlignment.Center;
presentation.Save("aligned_paragraph.pptx", SaveFormat.Pptx);
}
परिणाम:

पाठ के लिए पारदर्शिता सेट करें
पाठ की पारदर्शिता को IPortionFormat.FillFormat को सौंपे गए रंग के अल्फा घटक द्वारा नियंत्रित किया जाता है। नीचे के उदाहरणों में, alpha = 50 0–255 स्केल पर ARGB अल्फा-चैनल मान है, न कि पारदर्शिता प्रतिशत।
नीचे दिया गया कोड उदाहरण संपूर्ण पैराग्राफ पर पारदर्शिता लागू करने का तरीका दर्शाता है:
int alpha = 50;
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// पाठ का भरने वाला रंग पारदर्शी रंग पर सेट करें।
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);
}
परिणाम:

निम्नलिखित कोड उदाहरण बोल्ड फ़ॉन्ट वाले पाठ भागों पर पारदर्शिता लागू करने का तरीका दर्शाता है:
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)
{
// पाठ भाग की पारदर्शिता सेट करें।
portion.PortionFormat.FillFormat.FillType = FillType.Solid;
portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(alpha, Color.Black);
}
}
presentation.Save("transparent_text_portions.pptx", SaveFormat.Pptx);
}
परिणाम:

पाठ के लिए अक्षर अंतराल सेट करें
टेक्स्ट बॉक्स में अक्षरों के बीच अंतराल को विस्तारित या संकुचित करने के लिए IBasePortionFormat.Spacing का उपयोग करें।
निम्नलिखित C# कोड संपूर्ण पैराग्राफ में अक्षर अंतराल को विस्तारित करने का तरीका दर्शाता है:
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// नोट: अक्षर अंतराल को संकुचित करने के लिए नकारात्मक मान उपयोग करें।
paragraph.ParagraphFormat.DefaultPortionFormat.Spacing = 3; // अक्षर अंतराल बढ़ाएँ.
presentation.Save("character_spacing_in_paragraph.pptx", SaveFormat.Pptx);
}
परिणाम:

नीचे दिया गया कोड उदाहरण बोल्ड फ़ॉन्ट वाले पाठ भागों में अक्षर अंतराल को विस्तारित करने का तरीका दिखाता है:
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)
{
// नोट: अक्षर अंतराल को संकुचित करने के लिए नकारात्मक मान उपयोग करें।
portion.PortionFormat.Spacing = 3; // अक्षर अंतराल बढ़ाएँ।
}
}
presentation.Save("character_spacing_in_text_portions.pptx", SaveFormat.Pptx);
}
परिणाम:

विशिष्ट फ़ॉन्ट्स के लिए केरनिंग को अक्षम करें
कुछ मामलों में, Aspose.Slides द्वारा रेंडर किया गया पाठ PowerPoint में दिखने वाले समान पाठ से थोड़ा अधिक कसकर दिख सकता है। यह इसलिए हो सकता है क्योंकि PowerPoint कुछ फ़ॉन्ट्स के लिए केरनिंग डेटा को अनदेखा कर सकता है, भले ही फ़ॉन्ट में वैध केरनिंग जानकारी हो और PowerPoint सेटिंग्स में केरनिंग सक्षम हो।
ऐसे मामलों में रेंडर आउटपुट को PowerPoint के करीब लाने के लिए, आप प्रभावित फ़ॉन्ट का उपयोग करने वाले पाठ भागों के लिए केरनिंग को अक्षम कर सकते हैं। IPortionFormat.KerningMinimalSize को वास्तविक फ़ॉन्ट आकार से काफी बड़ा मान सेट करें:
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);
}
यह सेटिंग मेल खाने वाले पाठ भागों पर केरनिंग को लागू होने से रोकती है और फ़ॉन्ट्स के लिए PowerPoint‑विशिष्ट व्यवहार को संतुलित करने में मदद कर सकती है।
पाठ फ़ॉन्ट गुण प्रबंधित करें
फ़ॉन्ट गुण को पैराग्राफ स्तर पर IParagraphFormat.DefaultPortionFormat के माध्यम से या व्यक्तिगत भागों पर IPortionFormat द्वारा सेट किया जा सकता है।
निम्नलिखित कोड पैराग्राफ के पूरे हिस्से के लिए फ़ॉन्ट और पाठ शैली सेट करता है: यह फ़ॉन्ट आकार, बोल्ड, इटैलिक, डॉटेड अंडरलाइन, और Times New Roman फ़ॉन्ट को सभी भागों पर लागू करता है।
using (var presentation = new Presentation("sample.pptx"))
{
var autoShape = (IAutoShape)presentation.Slides[0].Shapes[0];
var paragraph = autoShape.TextFrame.Paragraphs[0];
// पैराग्राफ के लिए फ़ॉन्ट गुण सेट करें।
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);
}
परिणाम:

नीचे दिया गया कोड उदाहरण बोल्ड फ़ॉन्ट वाले पाठ भागों पर समान गुण लागू करता है:
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)
{
// पाठ भाग के लिए फ़ॉन्ट गुण सेट करें।
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);
}
परिणाम:

पाठ के घुमाव को सेट करें
आकार के भीतर पूर्वपरिभाषित पाठ अभिविन्यास सेट करने के लिए ITextFrameFormat.TextVerticalType का उपयोग करें।
निम्नलिखित कोड उदाहरण आकार में पाठ अभिविन्यास को Vertical270 पर सेट करता है, जिससे पाठ 90 डिग्री घड़ी की विपरीत दिशा में घुमता है:
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);
}
परिणाम:

पाठ फ्रेम के लिए कस्टम घुमाव सेट करें
ITextFrameFormat.RotationAngle का उपयोग करके किसी ITextFrame के लिए कस्टम घुमाव कोण सेट किया जा सकता है।
नीचे दिया गया कोड उदाहरण आकार के भीतर पाठ फ्रेम को 3 डिग्री घड़ी की दिशा में घुमाता है:
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);
}
परिणाम:

पैराग्राफ की पंक्ति अंतराल सेट करें
Aspose.Slides IParagraphFormat.SpaceAfter, IParagraphFormat.SpaceBefore, और IParagraphFormat.SpaceWithin प्रदान करता है ताकि पैराग्राफ अंतराल को नियंत्रित किया जा सके। ये गुण निम्न प्रकार उपयोग किए जाते हैं:
- सकारात्मक मान का उपयोग करके पंक्ति अंतराल को पंक्ति की ऊँचाई के प्रतिशत के रूप में निर्दिष्ट करें।
- नकारात्मक मान का उपयोग करके पंक्ति अंतराल को पॉइंट में निर्दिष्ट करें।
निम्नलिखित कोड उदाहरण पैराग्राफ के भीतर पंक्ति अंतराल निर्दिष्ट करने का तरीका दिखाता है:
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);
}
परिणाम:

पाठ फ्रेम के लिए ऑटोफिट प्रकार सेट करें
ITextFrameFormat.AutofitType यह निर्धारित करता है कि जब पाठ कंटेनर की सीमाओं से बाहर निकलता है तो उसकी कैसी व्यवहार होगी। इसका उपयोग यह नियंत्रित करने के लिए करें कि पाठ छोटा हो, ओवरफ़्लो हो, या आकार स्वतः बदल दिया जाए।
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);
}
पाठ फ्रेम के एंकर को सेट करें
ITextFrameFormat.AnchoringType यह निर्धारित करता है कि पाठ आकार के भीतर उर्ध्वाधर रूप से कहाँ स्थित होगा, जैसे शीर्ष, मध्य या नीचे।
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);
}
पाठ टैब्युलेशन सेट करें
पैराग्राफ में टैब स्टॉप कॉन्फ़िगर करने के लिए IParagraphFormat.DefaultTabSize और IParagraphFormat.Tabs का उपयोग करें।
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);
}
परिणाम:

प्रूफिंग भाषा सेट करें
Aspose.Slides IPortionFormat.LanguageId प्रदान करता है, जिससे आप किसी पाठ भाग के लिए प्रूफिंग भाषा सेट कर सकते हैं। प्रूफिंग भाषा PowerPoint में वर्तनी और व्याकरण जाँच के लिए उपयोग की जाती है।
निम्नलिखित कोड उदाहरण पाठ भाग के लिए प्रूफिंग भाषा सेट करने का तरीका दिखाता है:
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;
// प्रूफिंग भाषा का Id सेट करें.
textPortion.PortionFormat.LanguageId = "zh-CN";
textPortion.Text = "1。";
paragraph.Portions.Add(textPortion);
presentation.Save("proofing_language.pptx", SaveFormat.Pptx);
}
डिफ़ॉल्ट भाषा सेट करें
लोड विकल्पों के दौरान या प्रस्तुति बनाते समय निर्मित पाठ के लिए डिफ़ॉल्ट भाषा परिभाषित करने हेतु LoadOptions.DefaultTextLanguage का उपयोग करें।
var loadOptions = new LoadOptions();
loadOptions.DefaultTextLanguage = "en-US";
using (var presentation = new Presentation(loadOptions))
{
var slide = presentation.Slides[0];
// पाठ के साथ नया आयताकार आकार जोड़ें।
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 20, 20, 150, 50);
shape.TextFrame.Text = "Sample text";
// पहले भाग की भाषा जाँचें।
var portion = shape.TextFrame.Paragraphs[0].Portions[0];
Console.WriteLine(portion.PortionFormat.LanguageId);
}
डिफ़ॉल्ट पाठ शैली सेट करें
प्रस्तुति स्तर पर डिफ़ॉल्ट पाठ स्वरूपण लागू करने के लिए IPresentation.DefaultTextStyle का उपयोग करें।
निम्नलिखित कोड उदाहरण एक नई प्रस्तुति में सभी स्लाइड्स के लिए 14 pt आकार के साथ डिफ़ॉल्ट बोल्ड फ़ॉन्ट सेट करने का तरीका दिखाता है।
using (var presentation = new Presentation())
{
// शीर्ष स्तर पैराग्राफ फ़ॉर्मेट प्राप्त करें.
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);
}
ऑल-कैप्स प्रभाव के साथ पाठ निकालें
PowerPoint में All Caps फ़ॉन्ट प्रभाव लागू करने से स्लाइड पर पाठ बड़े अक्षरों में दिखता है, भले ही वह मूल रूप से छोटे अक्षरों में टाइप किया गया हो। जब आप Aspose.Slides के साथ ऐसा पाठ भाग प्राप्त करते हैं, तो लाइब्रेरी पाठ को बिल्कुल उसी रूप में लौटाती है जैसा वह दर्ज किया गया था। प्रदर्शित पाठ से मेल खाने के लिए, TextCapType को जांचें और जब मान All हो तो लौटाए गए स्ट्रिंग को अपरकेस में परिवर्तित करें।
मान लीजिए हमारे पास sample2.pptx फ़ाइल की पहली स्लाइड पर निम्नलिखित टेक्स्ट बॉक्स है।

नीचे दिया गया कोड उदाहरण All Caps प्रभाव लागू किए हुए पाठ को निकालने का तरीका दर्शाता है:
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}");
}
}
आउटपुट:
Original text: Hello, Aspose!
All-Caps effect: HELLO, ASPOSE!
अक्सर पूछे जाने वाले प्रश्न
स्लाइड पर तालिका में पाठ कैसे संशोधित करें?
स्लाइड पर तालिका में पाठ को संशोधित करने के लिए, ITable का उपयोग करें। कोशिकाओं के माध्यम से इटररेट करें और प्रत्येक कोशिका को ICell.TextFrame तथा पैराग्राफ फ़ॉर्मेट को IParagraph.ParagraphFormat के माध्यम से अपडेट करें।
PowerPoint स्लाइड में पाठ पर ग्रेडिएंट रंग कैसे लागू करें?
ग्रेडिएंट रंग लागू करने के लिए IPortionFormat.FillFormat का उपयोग करें। IFillFormat.FillType को FillType.Gradient पर सेट करें और ग्रेडिएंट स्टॉप, दिशा, तथा पारदर्शिता को कॉन्फ़िगर करें।