2012-12-03 5 views
6

Utilizzo di Oracle (Sun) JDK6 e cercando di passare a Oracle JDK7jdk7: sostituzione sun.font.fontManager/come ottenere le informazioni nome del file da fontname

Sto usando sun.awt.GraphicsEnvironment per trovare tutti i font di sistema, al fine di usali per cambiare il font pdf usato nel mio file pdf. Ecco il codice esatto che sto usando:

GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment(); 

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

Dopo di che ho bisogno per ottenere il percorso esatto del file di font sul sistema, per cui uso:

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

Il problema ora è che sun.font.FontManager è non è più una classe ed è stata convertita in un'interfaccia. Ho cercato online e ho trovato alcune soluzioni di cui non sono soddisfatto e sto cercando altre idee per aiutare a risolvere il mio problema.

Le soluzioni che ho trovato:

  1. Distribuire il mio progetto su Java 6, invece di Java 7 (Non consiglierei come io uso alcune nuove funzionalità in Java 7).
  2. Ho trovato il codice della classe FontManager in linea, ma l'utilizzo richiede l'inclusione di molte altre classi/interfacce e il processo sembra fittizio e richiede molto tempo. Inoltre, non lo sono se sono autorizzato a utilizzare quel codice in quanto è proprietario dell'azienda Sun.

cosa ho bisogno è: * un modo per trovare il percorso esatto del file di font sul sistema *. Tutte le idee sono benvenute.

+0

Amico, hai trovato qualche soluzione? –

+0

La risposta di Marcel Stör sull'utilizzo di Win32FontManager ha aiutato a risolvere il problema solo in Windows. Sospetto che non funzionerebbe su Linux o Mac OS. –

risposta

3

Non stai dicendo quale JDK usi (Oracle, OpenJDK, ..). Forse hai

FontManagerFactory.getInstance() 

disponibile. Oppure l'implementazione dell'interfaccia Win32FontManager (se sei su Windows)?

+0

La vera domanda è 'come ottenere il modo A per trovare il percorso esatto del file del font sul sistema' – Jayan

+0

@ Jayan, sì lo so. È stato richiesto per Java> 10 anni fa: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4752644 –

+0

@Jayan, ho ricevuto il premio, grazie. Qual è stata la soluzione nel tuo caso particolare? –

Problemi correlati