Fonts

Fonts

यह गाइड दिखाता है कि दस्तावेज़ में संदर्भित फ़ॉन्ट्स की जाँच कैसे करें, एम्बेडेड फ़ॉन्ट डेटा कैसे निकालें, और TrueType फ़ॉन्ट एम्बेडिंग को सहेजते समय Aspose.Words FOSS for .NET के साथ कैसे नियंत्रित करें। Aspose.Words FOSS for .NET लोड किए गए दस्तावेज़ द्वारा संदर्भित प्रत्येक फ़ॉन्ट को FontInfoCollection के माध्यम से ट्रैक करता है, और प्रति-फ़ॉन्ट मेटाडेटा, एम्बेडेड फ़ॉन्ट एक्सट्रैक्शन, और सहेजते समय एम्बेडिंग नियंत्रणों को FontInfo के माध्यम से उजागर करता है। Document.FontSettings और LoadOptions.FontSettings (इस संस्करण में जानबूझकर न्यूनतम) FontSettings प्रवेश बिंदु प्रदान करते हैं।


दस्तावेज़ में उपयोग किए गए फ़ॉन्ट्स का निरीक्षण

DocumentBase.FontInfos (Document द्वारा विरासत में मिला) एक FontInfoCollection लौटाता है जो दस्तावेज़ में कहीं भी संदर्भित प्रत्येक फ़ॉन्ट का वर्णन करता है। इसे नाम से इंडेक्स करें (जैसे fontInfos["Arial"]), Contains(name) से जाँचें कि यह मौजूद है या नहीं, Count से उनकी संख्या गिनें, या GetEnumerator() के माध्यम से पूरी संग्रह को सूचीबद्ध करें।


फ़ॉन्ट गुण और वर्गीकरण

प्रत्येक FontInfo एक फ़ॉन्ट का वर्णन करता है: Name और AltName इसे पहचानते हैं, Family इसे FontFamily enum के माध्यम से वर्गीकृत करता है (Auto, Roman, Swiss, Modern, Script, Decorative), Pitch इसका FontPitch रिपोर्ट करता है (Default, Fixed, Variable), और IsTrueType, Charset, तथा Panose निचले स्तर के फ़ॉन्ट-मैचिंग डेटा को उजागर करते हैं।


एंबेडेड फ़ॉन्ट निष्कर्षण

यदि किसी दस्तावेज़ में एम्बेडेड फ़ॉन्ट्स हैं, तो FontInfo.GetEmbeddedFont(format, style) एक दिए गए EmbeddedFontFormat (EmbeddedOpenType या OpenType) और EmbeddedFontStyle (Regular, Bold, Italic, BoldItalic) के लिए कच्चे एम्बेडेड फ़ॉन्ट बाइट्स लौटाता है। GetEmbeddedFontAsOpenType(style) फ़ॉन्ट को सीधे OpenType फ़ॉर्मेट में परिवर्तित करके लौटाता है, चाहे वह मूल रूप से कैसे एम्बेड किया गया हो।


फ़ॉन्ट एम्बेडिंग लाइसेंसिंग अधिकार

फ़ॉन्ट को निकालने या पुनः-एम्बेड करने से पहले, FontInfo.EmbeddingLicensingRights जाँचें, जो एक FontEmbeddingLicensingRights ऑब्जेक्ट है। EmbeddingUsagePermissions FontEmbeddingUsagePermissions enum (Installable, RestrictedLicense, PrintAndPreview, Editable) के माध्यम से लाइसेंस स्तर रिपोर्ट करता है, जबकि NoSubsetting और BitmapEmbeddingOnly फ़ॉन्ट विक्रेता द्वारा निर्धारित अतिरिक्त प्रतिबंधों को चिह्नित करते हैं।


सेव पर फ़ॉन्ट एम्बेडिंग को नियंत्रित करना

FontInfoCollection में दस्तावेज़-स्तर के एम्बेडिंग स्विच भी होते हैं: EmbedTrueTypeFonts को true पर सेट करें ताकि दस्तावेज़ सहेजे जाने पर उपयोग किए गए सभी TrueType फ़ॉन्ट एम्बेड हो जाएँ, EmbedSystemFonts को सेट करें ताकि सामान्यतः किसी भी प्रणाली पर मौजूद मानने वाले फ़ॉन्ट शामिल हों, और SaveSubsetFonts को सेट करें ताकि संपूर्ण फ़ॉन्ट के बजाय केवल वास्तविक उपयोग किए गए ग्लिफ़ एम्बेड हों।


FontSettings इस संस्करण में दायरा

Document.FontSettings और LoadOptions.FontSettings दोनों एक FontSettings ऑब्जेक्ट लौटाते हैं, और FontSettings.DefaultInstance एक साझा डिफ़ॉल्ट इंस्टेंस को उजागर करता है। इस FOSS संस्करण में, FontSettings का API सतह केवल उस डिफ़ॉल्ट-इंस्टेंस प्रॉपर्टी तक सीमित है — फ़ोल्डर-आधारित और सिस्टम फ़ॉन्ट-स्रोत समाधान, जो Aspose.Words में अन्यत्र पृष्ठ लेआउट और रेंडरिंग के लिए फ़ॉन्ट्स को बदलने या हल करने के लिए उपयोग किया जाता है, यहाँ मौजूद नहीं है, क्योंकि पृष्ठ लेआउट और रेंडरिंग इस संस्करण के दायरे के बाहर हैं। यहाँ फ़ॉन्ट हैंडलिंग का अर्थ है मेटाडेटा निरीक्षण और एम्बेडिंग, रेंडरिंग के लिए फ़ॉन्ट प्रतिस्थापन नहीं।


टिप्स और सर्वोत्तम प्रथाएँ

  • हमेशा FontInfo.EmbeddingLicensingRights.EmbeddingUsagePermissions जाँचें इससे पहले कि आप एम्बेडेड फ़ॉन्ट को निकालें या पुनः वितरित करें — कुछ फ़ॉन्ट केवल RestrictedLicense या PrintAndPreview लाइसेंस वाले होते हैं।
  • जब आपको स्रोत दस्तावेज़ ने फ़ॉन्ट को कैसे एम्बेड किया है, चाहे कुछ भी हो, एक सुसंगत आउटपुट फ़ॉर्मेट चाहिए हो तो GetEmbeddedFontAsOpenType() का उपयोग करें (EmbeddedOpenType बनाम OpenType)।
  • केवल कुछ ही ग्लिफ़्स उपयोग करने वाले फ़ॉन्ट एम्बेड करते समय आउटपुट फ़ाइल आकार को कम करने के लिए FontInfoCollection.SaveSubsetFonts को true पर सेट करें।
  • जब आपको केवल फ़ॉन्ट की उपस्थिति की जाँच करनी हो, तो FontInfoCollection.Contains(name) को इंडेक्स करने और विफल लुकअप (उदाहरण के लिए fontInfos[name]) को संभालने की तुलना में यह सस्ता है।

सामान्य समस्याएँ

समस्याकारणसमाधान
GetEmbeddedFont() कोई उपयोगी डेटा नहीं लौटाता हैसंदर्भित फ़ॉन्ट वास्तव में दस्तावेज़ में एम्बेडेड नहीं हैफ़ॉन्ट डेटा मौजूद होने का अनुमान लगाने से पहले दस्तावेज़ की एम्बेडिंग सेटिंग्स की जाँच करें
नाम द्वारा FontInfoCollection में इंडेक्सिंग करने पर कुछ नहीं मिलताफ़ॉन्ट नाम ठीक-ठीक मेल नहीं खाता, केस सहितFontInfoCollection को GetEnumerator() के साथ गिनें ताकि सटीक Name स्ट्रिंग की पुष्टि की जा सके
अपेक्षित फ़ॉन्ट प्रतिस्थापन/समाधान API गुम हैंफ़ोल्डर- और सिस्टम-आधारित फ़ॉन्ट स्रोत समाधान इस FOSS संस्करण में लागू नहीं किया गया हैमेटाडेटा और एम्बेडिंग के लिए केवल FontInfo/FontInfoCollection का उपयोग करें; रेंडरिंग के लिए फ़ॉन्ट प्रतिस्थापन इस संस्करण के दायरे में शामिल नहीं है

FAQ

मैं किसी दस्तावेज़ द्वारा संदर्भित प्रत्येक फ़ॉन्ट की सूची कैसे प्राप्त करूँ?

GetEnumerator() के माध्यम से Document.FontInfos (एक FontInfoCollection) को सूचीबद्ध करें, या नाम द्वारा उसमें इंडेक्स करके किसी विशिष्ट को खोजें (उदाहरण के लिए fontInfos["Arial"])।

क्या मैं किसी दस्तावेज़ से एम्बेडेड फ़ॉन्ट के कच्चे बाइट्स निकाल सकता हूँ?

हाँ, यदि फ़ॉन्ट एम्बेडेड है — मूल एम्बेडेड फॉर्मेट के लिए FontInfo.GetEmbeddedFont(format, style) को कॉल करें, या परिणाम को OpenType में सामान्यीकृत करने के लिए GetEmbeddedFontAsOpenType(style) का उपयोग करें।

मैं दस्तावेज़ सहेजते समय सुनिश्चित कैसे करूँ कि फ़ॉन्ट एम्बेडेड हों?

सहेजने से पहले FontInfoCollection.EmbedTrueTypeFonts को true पर सेट करें; यदि आपको यह भी चाहिए कि फ़ॉन्ट किसी भी सिस्टम पर मौजूद हों, तो EmbedSystemFonts जोड़ें, और केवल उपयोग में आने वाले ग्लिफ़्स को एम्बेड करने के लिए SaveSubsetFonts जोड़ें।

क्या यह संस्करण रेंडरिंग के लिए कस्टम फ़ोल्डर से फ़ॉन्ट हल करने का समर्थन करता है?

नहीं — फ़ोल्डर- और सिस्टम-आधारित फ़ॉन्ट स्रोत समाधान (FontSettings स्रोत कॉन्फ़िगरेशन) यहाँ लागू नहीं किया गया है, क्योंकि यह पेज लेआउट और रेंडरिंग की सेवा के लिए है, जो इस FOSS संस्करण के दायरे से बाहर हैं।

FontEmbeddingLicensingRights.NoSubsetting का क्या अर्थ है?

यह फ़ॉन्ट विक्रेता के एम्बेडिंग अधिकारों द्वारा रिपोर्ट किया गया एक लाइसेंसिंग फ़्लैग है: जब true हो, तो फ़ॉन्ट को केवल उपयोग में आने वाले ग्लिफ़्स तक सीमित नहीं किया जा सकता।


API Reference सारांश

क्लास / मेथडविवरण
FontInfoCollectionएक दस्तावेज़ में संदर्भित फ़ॉन्ट; नाम द्वारा इंडेक्सर (fontInfos[name]), Contains(), Count, GetEnumerator(), साथ ही EmbedTrueTypeFonts/EmbedSystemFonts/SaveSubsetFonts
FontInfoएक फ़ॉन्ट का मेटाडेटा: Name, AltName, Family, Pitch, IsTrueType, Charset, Panose, EmbeddingLicensingRights
FontInfo.GetEmbeddedFont() / GetEmbeddedFontAsOpenType()एम्बेडेड font bytes निकालें
EmbeddedFontFormat / EmbeddedFontStyleएंबेडेड फ़ॉन्ट के फ़ॉर्मेट और शैली वैरिएंट की पहचान करने वाले Enums
FontEmbeddingLicensingRights / FontEmbeddingUsagePermissionsफ़ॉन्ट के अनुसार रिपोर्ट किए गए एम्बेडिंग लाइसेंस प्रतिबंध
FontSettingsन्यूनतम फ़ॉन्ट-सेटिंग्स प्रवेश बिंदु (Document.FontSettings, LoadOptions.FontSettings); इस संस्करण में फ़ॉन्ट-स्रोत समाधान नहीं है

यह भी देखें

 हिन्दी