java fonts java-7 jdk-internal-api

java - jdk7: sun.font.fontManager replacement/cómo obtener información de nombre de archivo de fontname



fonts java-7 (1)

Usando Oracle (Sun) JDK6 e intentando pasar a Oracle JDK7

Estoy usando sun.awt.GraphicsEnvironment para encontrar todas las fuentes del sistema con el fin de usarlas para cambiar la fuente de PDF utilizada en mi archivo pdf. Aquí está el código exacto que estoy usando:

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

Después de eso tendré que obtener la ruta de archivo de fuente exacta en el sistema, entonces uso:

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

El problema ahora es que sun.font.FontManager ya no es una clase y se ha convertido en una interfaz. Busqué en línea y encontré algunas soluciones con las que no estoy satisfecho y estoy buscando otras ideas para ayudar a resolver mi problema.

Las soluciones que encontré:

  1. Implementar mi proyecto en Java 6 en lugar de Java 7 (no lo recomiendo porque uso algunas funciones nuevas en Java 7).
  2. Encontré el código de la clase FontManager en línea, pero usarlo requerirá incluir muchas otras clases / interfaces y el proceso parece falso y lento. Tampoco lo estoy si puedo usar ese código ya que es propiedad de la compañía Sun.

Lo que necesito es: * Una forma de encontrar la ruta exacta del archivo de fuentes en el sistema *. Todas las ideas son bienvenidas


No está diciendo qué JDK usa (Oracle, OpenJDK, ...). Posiblemente tengas

FontManagerFactory.getInstance()

disponible. ¿O la implementación de interfaz Win32FontManager (si está en Windows)?