2012-05-14 31 views
8

मैं OTF फॉन्ट अपने सिस्टम पर स्थापित इस्तेमाल करने की कोशिश, लेकिन मैं विफल रहा:पहुँच OTF फ़ॉन्ट

FontFamily family = new FontFamily(name_for_my_font); 

मैं प्रणाली में अपने सभी फोंट और वास्तव में मैंने नहीं देखा है के लिए आवश्यक फॉन्ट सूची की कोशिश की है:

foreach (FontFamily font in System.Drawing.FontFamily.Families) 
{ 
Console.WriteLine(font); 
} 

लेकिन मैं फ़ॉन्ट्स फ़ोल्डर में अपना फ़ॉन्ट देख सकता हूं। इसमें ओटीएफ एक्सटेंशन है। शायद यह समस्या है? मैं केवल टीटीएफ फोंट देख सकता हूं। पर क्यों? मैं अपने कार्यक्रम से ओटीएफ फ़ॉन्ट कैसे प्राप्त कर सकता हूं?

अद्यतन: क्षमा करें समस्या OTF उपयोग के साथ है, लेकिन नहीं टीटीएफ! मैं System.Drawing.Text.InstalledFontCollection उपयोग करने के लिए मेरा उत्तर में सुधार किए गए हैं

+1

यह है दूसरी तरह के आसपास, System.Drawing केवल ट्रू टाइप फोंट संभाल कर सकते हैं , ओपन टाइप फ़ॉन्ट नहीं। –

+0

वाह! मुझे इसके बारे में कोई जानकारी नहीं है। तो मैं अपने ओटीएफ फोंट कैसे एक्सेस कर सकता हूं? –

+0

इसके लिए एक आसान और कठिन समाधान है। आसान एक ओपनटाइप फोंट का उपयोग करने की कोशिश करना बंद कर देता है क्योंकि वे Winforms ऐप में कभी भी काम नहीं करेंगे। कड़ी मेहनत आपके पास जो कुछ भी है उसे फेंकना और डब्ल्यूपीएफ पर स्विच करना है। –

उत्तर

8

समस्या यह है कि ओपन टाइप फोंट कई रूपों में आता है, एक ट्रू टाइप के आधार पर की रूपरेखा और एक और पोस्टस्क्रिप्ट टाइप 1 के आधार पर है रूपरेखा। विंडोज जीडीआई + ग्राफिक्स एपीआई पोस्टस्क्रिप्ट प्रकार 1 रूपरेखा का समर्थन नहीं करता है। ऐप्पल से कुछ फ़ॉन्ट तकनीक का लाइसेंस प्राप्त करने में सक्षम नहीं होने के परिणामस्वरूप ओपनटाइप फ़ॉन्ट प्रारूप माइक्रोसॉफ्ट द्वारा बनाया गया था, यह विडंबनापूर्ण है।

तो यदि कोई विंडोज़ एप्लिकेशन जीडीआई + पर आधारित है तो यह उस मामले के लिए पोस्टस्क्रिप्ट प्रकार 1 रूपरेखा या पोस्टस्क्रिप्ट प्रकार 1 फोंट वाले ओपनटाइप फोंट प्रस्तुत करने में सक्षम नहीं होगा। दुर्भाग्यवश System.Drawing जीडीआई + का उपयोग करके लागू किया गया है। आपका एकमात्र विकल्प ट्रू टाइप टाइपलाइन का उपयोग करके फोंट से चिपकना है।

(या, यदि आप वास्तव में हताश हैं, तो आप पी/आह्वान करने के लिए "क्लासिक" GDI और एक बिटमैप में फॉन्ट प्रस्तुत करना। सकता है)

0
+2

1) यह मेरे ओटीएफ फ़ॉन्ट तक पहुंचने में मेरी मदद कैसे कर सकता है? 2) मैं भी आपके दृष्टिकोण का उपयोग कर अपना फ़ॉन्ट नहीं देख सकता। –

+1

यह अभी भी स्थापित फ़ॉन्ट्स को देखने के लिए एक अच्छा जवाब है। मुझे शायद पिनवोक करना होगा इसलिए मैं फ़ॉन्ट को सूचीबद्ध करने में सक्षम होने के चरणबद्धता की सराहना करता हूं। – Carter