.NET में प्रस्तुतियों में फ़ॉन्ट एंबेड करें

परिचय

PowerPoint में फ़ॉन्ट एंबेड करने से आपकी प्रस्तुति विभिन्न सिस्टमों पर अपनी इच्छित रूपरेखा बनाए रखती है। रचनात्मकता के लिए विशिष्ट फ़ॉन्ट या मानक फ़ॉन्ट का उपयोग चाहे, फ़ॉन्ट एंबेड करने से पाठ और लेआउट में बाधा नहीं आती।

यदि आपने अपने काम में रचनात्मकता दिखाने के लिए थर्ड‑पार्टी या गैर‑मानक फ़ॉन्ट का प्रयोग किया है, तो फ़ॉन्ट एंबेड करने के और भी कारण बनते हैं। अन्यथा (एंबेडेड फ़ॉन्ट न होने पर) आपके स्लाइड्स पर टेक्स्ट या नंबर, लेआउट, स्टाइल आदि बदल सकते हैं या भ्रमित करने वाले आयत में बदल सकते हैं।

एंबेडेड फ़ॉन्ट को प्रबंधित करने के लिए FontsManager, FontData, और Compress क्लासों का उपयोग करें।

एंबेडेड फ़ॉन्ट प्राप्त करें और हटाएँ

GetEmbeddedFonts और RemoveEmbeddedFont मेथड्स के साथ आप प्रस्तुति से एंबेडेड फ़ॉन्ट को आसानी से प्राप्त या हटासकते हैं।

यह C# कोड दिखाता है कि कैसे प्रस्तुति से एंबेडेड फ़ॉन्ट को प्राप्त और हटाया जा सकता है:

using (Presentation presentation = new Presentation("EmbeddedFonts.pptx"))
{
    ISlide slide = presentation.Slides[0];

    // एंबेडेड "FunSized" का उपयोग करने वाले टेक्स्ट फ्रेम वाले स्लाइड को रेंडर करता है
    using (IImage image = slide.GetImage(new Size(960, 720)))
    {
        image.Save("picture1_out.png", ImageFormat.Png);
    }

    IFontsManager fontsManager = presentation.FontsManager;

    IFontData[] embeddedFonts = fontsManager.GetEmbeddedFonts();

    // "Calibri" फ़ॉन्ट खोजता है
    IFontData funSizedEmbeddedFont = Array.Find(embeddedFonts, delegate (IFontData data)
    {
        return data.FontName == "Calibri";
    });

    // "Calibri" फ़ॉन्ट हटाता है
    fontsManager.RemoveEmbeddedFont(funSizedEmbeddedFont);

    // प्रस्तुति रेंडर करता है; "Calibri" फ़ॉन्ट को एक मौजूदा फ़ॉन्ट से बदल दिया जाता है
    using (IImage image = slide.GetImage(new Size(960, 720)))
    {
        image.Save("picture2_out.png", ImageFormat.Png);
    }

    // एंबेडेड "Calibri" फ़ॉन्ट के बिना प्रस्तुति को डिस्क पर सहेजता है
    presentation.Save("WithoutManageEmbeddedFonts_out.ppt", SaveFormat.Ppt);
}

एंबेडेड फ़ॉन्ट जोड़ें

EmbedFontCharacters एन्‍युम और AddEmbeddedFont मेथड के दो ओवरलोड का उपयोग करके आप अपनी पसंदीदा (एंबेडिंग) नियम चुन सकते हैं और फ़ॉन्ट को प्रस्तुति में एंबेड कर सकते हैं। यह C# कोड दिखाता है कि कैसे फ़ॉन्ट को एंबेड और जोड़ें:

 // प्रस्तुति लोड करता है
Presentation presentation = new Presentation("Fonts.pptx");

IFontData[] allFonts = presentation.FontsManager.GetFonts();
IFontData[] embeddedFonts = presentation.FontsManager.GetEmbeddedFonts();
foreach (IFontData font in allFonts)
{
    if (!embeddedFonts.Contains(font))
    {
        presentation.FontsManager.AddEmbeddedFont(font, EmbedFontCharacters.All);
    }
}

// प्रस्तुति को डिस्क पर सहेजता है
presentation.Save("AddEmbeddedFont_out.pptx", SaveFormat.Pptx);

एंबेडेड फ़ॉन्ट को संपीड़ित करें

CompressEmbeddedFonts का उपयोग करके एंबेडेड फ़ॉन्ट को संपीड़ित करके फ़ाइल आकार को अनुकूलित करें।

संपीड़न के लिए उदाहरण कोड:

using (Presentation pres = new Presentation("pres.pptx"))
{
    Aspose.Slides.LowCode.Compress.CompressEmbeddedFonts(pres);
    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

अक्सर पूछे जाने वाले प्रश्न

मैं कैसे निर्धारित करूँ कि प्रस्तुति में कोई विशिष्ट फ़ॉन्ट एंबेडिंग के बावजूद रेंडरिंग के समय भी प्रतिस्थापित होगा?
फ़ॉन्ट मैनेजर में substitution information और fallback/substitution rules देखें: यदि फ़ॉन्ट उपलब्ध नहीं है या प्रतिबंधित है, तो फ़ॉलबैक उपयोग किया जाएगा।

क्या Arial/Calibri जैसे “सिस्टम” फ़ॉन्ट को एंबेड करना सार्थक है?
आमतौर पर नहीं—ये फ़ॉन्ट लगभग हमेशा उपलब्ध होते हैं। लेकिन “थिन” वातावरण (Docker, प्री‑इंस्टॉल्ड फ़ॉन्ट न वाले Linux सर्वर) में पूर्ण पोर्टेबिलिटी के लिये सिस्टम फ़ॉन्ट को एंबेड करने से अनपेक्षित प्रतिस्थापन का जोखिम समाप्त हो सकता है।