¿Cómo encontrar, con Java, si un determinado tipo de letra está correctamente instalado en una máquina

StackOverflow https://stackoverflow.com/questions/2270360

  •  20-09-2019
  •  | 
  •  

Pregunta

Tengo un PC portátil que ejecuta Windows Vista, la primera vez que compré, ciertas fuentes chinas no aparecen, sólo pude ver rectángulos, pero jugado con la programación del control por un tiempo, cambiado algunas propiedades, y ahora que muestra las fuentes chinas correctamente, pero no recuerdo lo que hice.

Ahora, algunos de mis programas esté Inglés y Chino, algo como esto: "Enter | 输入" (Los chinos aquí también significa entrar), pero si un usuario no tiene fuentes chinas instaladas correctamente en su máquina, lo hará ver algo como esto: "Enter | [] []", mi pregunta es: en Java cómo detectar si esos caracteres se mostrarán correctamente en una determinada máquina, si no, simplemente a "Enter", si lo es, espectáculo " ingrese |. 输入"

Frank

¿Fue útil?

Solución

java.awt.GraphicsEnvironment.getAvailableFontFamilyNames() le puede dar una lista de las fuentes disponibles instalados en el sistema actual. También es posible usar java.awt.GraphicsEnvironment.getAllFonts() para obtener objetos java.awt.Font.

A continuación, puede utilizar java.awt.Font.canDisplay(int) para comprobar si un carácter Unicode se puede mostrar en esa fuente (donde el int es la representación entera del carácter de varios bytes).

Otros consejos

Lazy versión:

Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()).contains(FONT_NAME)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top