2011-04-07 21 views
5

मैं सभी स्थापित फोंट की postsript नाम की गणना करने की जरूरत का उपसंहार नाम का पता लगाएं।सभी इंस्टॉल किए गए फोंट

उदाहरण के लिए

:

 foreach (FontFamily item in FontFamily.Families) 
     { 
      listBox1.Items.Add(item.Name); 
     } 

यह केवल वास्तविक फ़ॉन्ट नामों दे देंगे। लेकिन मुझे पोस्टस्क्रिप्ट नाम ढूंढना होगा।

उदाहरण के लिए: फ़ॉन्ट "एरियल ब्लैक" के लिए - 1. वास्तविक फ़ॉन्ट का नाम "एरियल ब्लैक" है 2. पोस्टस्क्रिप्ट नाम है "Arial-ब्लैक"

अग्रिम धन्यवाद, जेम्स


संपादित करें:

  1. @ कुर्सी वास्तव में, मैं पीडीएफ से फ़ॉन्ट नाम पढ़ सकते हैं और इसी प्रणाली च लोड ont। इस मामले में, पीडीएफ का फ़ॉन्ट नाम "एरियल-ब्लैक" (पोस्ट स्क्रिप्ट नाम) है .. मैं तदनुसार sytem (एरियल ब्लैक) से फ़ॉन्ट कैसे लोड कर सकता हूं .... विचार ??

तो, आदर्श विधि स्थापित फोंट

  1. स्थानापन्न से उपसंहार नामों को पढ़ने जाना चाहिए '-' '' में कोई उपयुक्त समाधान नहीं है क्योंकि, इस तरह के रूप में अन्य फ़ॉन्ट नामों की संभावनाएं हैं "एरियल-बोल्ड", "टाइम न्यू रोमन - पीएसएमटी" आदि ..
+0

कोई और सुझाव नहीं? मेरे पास एक ही समस्या है। –

उत्तर

0

मैंने कुछ ऐसा ही किया है। आपको FontFamily से अवगत होना चाहिए। फ़मिलियां उपलब्ध फ़ॉन्ट्स का पूरा सेट नहीं हो सकती हैं।

क्यों बस नहीं स्थानापन्न '-' '' के लिए?

मेरे मामले में, मैं पीडीएफ फ़ॉन्ट का नाम है, जो Times New Roman के लिए बोल्ड शैली में "TimesNewRoman, बोल्ड" होना ही था करने के लिए जाने की जरूरत है।

private static string ToPdfFontName(Font f) 
    { 
     StringBuilder sb = new StringBuilder(); 
     StripSpaces(sb, f.Name); 
     if ((f.Style & FontStyle.Bold)!= 0 && (f.Style & FontStyle.Italic)!= 0) 
     { 
      sb.Append(",BoldItalic"); 
     } 
     else if ((f.Style & FontStyle.Bold)!= 0) 
     { 
      sb.Append(",Bold"); 
     } 
     else if ((f.Style & FontStyle.Italic)!= 0) 
     { 
      sb.Append(",Italic"); 
     } 
     return sb.ToString(); 
    } 
+0

@ कुर्सी वास्तव में, मैं पीडीएफ से फ़ॉन्ट नाम पढ़ सकते हैं और इसी सिस्टम फ़ॉन्ट लोड। इस मामले में, पीडीएफ का फ़ॉन्ट नाम "एरियल-ब्लैक" (पोस्ट स्क्रिप्ट नाम) है .. मैं तदनुसार sytem (एरियल ब्लैक) से फ़ॉन्ट कैसे लोड कर सकता हूं .... विचार ?? – user438959

4

आप इसे पोस्टस्क्रिप्ट में सीधे कर सकते हैं। इसे निष्पादित करें:

%!PS 
/FS { findfont exch scalefont setfont } bind def 

% gets page boundaries 
clippath pathbbox newpath 
/var_TopOfPage exch def 
/var_RightOfPage exch def 
/var_BottomOfPage exch def 
/var_LeftOfPage exch def 

% helvetica is almost always there 
12 /Helvetica FS 
0 setgray 

% set start position 
var_LeftOfPage var_TopOfPage 30 sub moveto 
/pos var_TopOfPage 20 sub def 

GlobalFontDirectory { 
    var_LeftOfPage pos moveto 
    /FontName get 70 string cvs show 
    /pos pos 20 sub def 
    pos 0 le { 
     showpage 
     /pos var_TopOfPage 20 sub def 
    } if 
} forall 

showpage 
%%EOF 

मैं इस कोड के साथ प्रिंटर के उपलब्ध फ़ॉन्ट ढूंढने में सक्षम हूं।

मुझे आशा है कि मैं तुम्हें मदद की है।

+0

अच्छा! यह बहुत उपयोगी होगा। –

संबंधित मुद्दे