2012-12-03 16 views
6

ओरेकल (सूर्य) JDK6 का उपयोग करना और करने के क्रम मेंjdk7: sun.font.fontManager प्रतिस्थापन/कैसे fontname

मैं sun.awt.GraphicsEnvironment उपयोग कर रहा हूँ सभी प्रणाली फोंट खोजने के लिए ओरेकल JDK7 पर ले जाने की कोशिश कर रहा से फ़ाइल नाम जानकारी पाने के लिए पीडीएफ फ़ाइल में इस्तेमाल पीडीएफ फ़ॉन्ट को बदलने के लिए उनका इस्तेमाल करें। यहाँ सटीक कोड मैं का उपयोग कर रहा है:

GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment(); 

// get all system fonts 
final Font[] fonts = gEnv.getAllFonts(); 

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

FontManager.getFontPath(true) + "/" + 
       FontManager.getFileNameForFontName(font_name); 

समस्या अब sun.font.FontManager है अब एक कक्षा नहीं है और एक इंटरफ़ेस में परिवर्तित कर दिया गया है। मैंने ऑनलाइन खोज की और कुछ समाधानों के साथ आया कि मैं संतुष्ट नहीं हूं और मैं अपनी समस्या को हल करने में मदद के लिए अन्य विचारों की तलाश में हूं।

समाधान है कि मैंने पाया:

  1. जावा 6 के बजाय जावा 7 पर अपने प्रोजेक्ट तैनात (के रूप में मैं जावा 7 में कुछ नई सुविधाओं का उपयोग की सलाह देते हैं नहीं)।
  2. मुझे FontManager क्लास का कोड ऑनलाइन मिला, लेकिन इसका उपयोग करने के लिए कई अन्य वर्ग/इंटरफेस शामिल होंगे और प्रक्रिया डमी और समय लेने वाली लगती है। इसके अलावा मुझे नहीं लगता कि मुझे उस कोड का उपयोग करने की अनुमति है क्योंकि यह सूर्य कंपनी का स्वामित्व है।

मैं क्या जरूरत है: * एक तरह से प्रणाली * पर सटीक फ़ॉन्ट फ़ाइल पथ खोजने के लिए। सभी विचारों का स्वागत है।

+0

दोस्त, क्या आपको कोई समाधान मिला? –

+0

Win32FontManager का उपयोग करने के बारे में मार्सेल स्टोर के उत्तर ने केवल विंडोज़ में समस्या को हल करने में मदद की। मुझे संदेह है कि यह लिनक्स या मैक ओएस पर काम नहीं करेगा। –

उत्तर

3

आप यह नहीं कह रहे हैं कि आप किस जेडीके का उपयोग करते हैं (ओरेकल, ओपनजेडीके, ..)। संभवतः आपके पास

FontManagerFactory.getInstance() 

उपलब्ध है। या इंटीफेस कार्यान्वयन Win32FontManager (यदि आप विंडोज़ पर हैं)?

+0

असली सवाल यह है कि 'सिस्टम पर सटीक फ़ॉन्ट फ़ाइल पथ खोजने का तरीका कैसे प्राप्त करें' – Jayan

+0

@Jayan, हाँ मुझे पता है। जावा के लिए अनुरोध किया गया था> 10 साल पहले: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4752644 –

+0

@ जयान, मुझे बक्षीस मिला, धन्यवाद। आपके विशेष मामले में समाधान क्या था? –