jvm - the - jasperreports font name
La fuente no está disponible para la JVM con Jasper Reports (17)
Intento generar un informe con DynamicJasper, pero aparece el siguiente error:
net.sf.jasperreports.engine.util.JRFontNotFoundException:
Font ''Arial'' is not available to the JVM.
msttcorefonts está instalado, pero supongo que la JVM no usa ninguna fuente.
Estoy usando Ubuntu 10.04.
¿Cómo puedo arreglar esto?
JasperReports genera una excepción JRFontNotFoundException en el caso en que la fuente utilizada dentro de una plantilla de informe no está disponible para la JVM, ya sea como una fuente del sistema o una fuente proveniente de una extensión de fuente JR. Esto garantiza que todos los problemas causados por las discrepancias en las métricas de fuentes se eviten y tenemos una advertencia temprana sobre la incoherencia.
Los informes de Jasper intentan ayudarte en el desarrollo de tu informe, indicando que no puede exportar tu informe correctamente ya que no puede encontrar la fuente definida en TextField
o StaticText
<font fontName="Arial"/>
Sí, puede deshabilitar esto estableciendo net.sf.jasperreports.awt.ignore.missing.font como falso, pero tendrá incoherencias de exportación .
Sí, puede instalar la fuente como fuente del sistema JVM (pero debe hacerlo en todas las PC utilizadas que puedan generar informes y aún así puede tener problemas de codificación ).
¡La forma correcta!
¡Usa extensiones de fuentes ! , si desea crear uno propio (consulte el enlace a continuación), los informes de jaspe también distribuyen un jarrón de extensión de fuente predeterminado ( jasperreports-fonts-xxxjar
), que admite fontName DejaVu Sans
, DejaVu Serif
y DejaVu Sans Mono
<font fontName="DejaVu Sans"/>
De la última guía JasperReport:
Recomendamos encarecidamente a las personas que utilicen únicamente fuentes derivadas de extensiones de fuentes, ya que esta es la única manera de asegurarse de que las fuentes estarán disponibles para la aplicación cuando los informes se ejecuten en tiempo de ejecución. El uso de fuentes del sistema siempre conlleva el riesgo de que los informes no funcionen correctamente cuando se implementan en una máquina nueva que podría no tener esas fuentes instaladas.
Enlaces en sobre cómo renderizar fuentes correctamente en pdf
Lista de verificación sobre cómo renderizar la fuente correctamente en pdf
Para Debian
añadir
non-free contrib
para deb y deb-src en /etc/apt/sources.list, es decir:
deb http://ftp.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.debian.org/debian/ squeeze main non-free contrib
Entonces
apt-get update
apt-get install msttcorefonts
Por supuesto, deberás reiniciar jasperserver. es decir:
/opt/jasperreports-server-cp-4.5.0/ctlscript.sh restart
Cambiar para su versión / ruta.
Copie sus fuentes en el siguiente directorio JDK_HOME / jre / lib / fonts
En realidad arreglé este problema de una manera muy simple
- ve a tu
home path
, como/root
- crea una carpeta llamada
.fonts
- copie
all your font files
en.fonts
, puede copiar la fuente desdeC:/windows/fonts
si usa Windows. -
sudo apt-get install fontconfig
-
fc-cache –fv
para volver a generar cachés de fuentes.
Enfrenté el problema con mi aplicación web basada en Spring 3 y la implementé en Weblogic 10.3 en Oracle Linux 6. La solución mencionada en el enlace no funcionó para mí.
Tuve que seguir los siguientes pasos: 1. Copie los archivos de fuentes Arial * .ttf en el directorio JROCKIT_JAVA_HOME / jre / lib / fonts 2. Realice las entradas de las fuentes en fontconfig.properties.src 3. Reinicie el clúster desde la consola Weblogic
filename.Arial=Arial.ttf
filename.Arial_Bold=Arial_Bold.ttf
filename.Arial_Italic=Arial_Italic.ttf
filename.Arial_Bold_Italic=Arial_Bold_Italic.ttf
Hay tres métodos para evitar tal problema.
Método 1: estableciendo ignorar la propiedad de fuente faltante.
JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");
o puede establecer esta propiedad ingresando la siguiente línea en el archivo .jrxml.
<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
Método 2: estableciendo la propiedad de fuente predeterminada.
JRProperties.setProperty("net.sf.jasperreports.default.font.name", "Sans Serif");
o puede establecer esta propiedad ingresando la siguiente línea en el archivo .jrxml.
<property name="net.sf.jasperreports.default.font.name" value="Sans Serif"/>
Método 3: agregando la propiedad de fuente faltante.
Primero instale las fuentes que faltan en IReport seleccionando "Herramientas >> Opciones >> Fuentes >> Instalar fuente", luego seleccione todas las fuentes y Exporte esto haciendo clic en "Exportar como extensión" con la extensión .jar.
Puede usar este jar para Jasperreports-font.XXXjar que estará presente en su biblioteca de proyectos o classpath.
Intenté instalar mscorefonts, pero el paquete estaba instalado y actualizado.
sudo apt-get update
sudo apt-get install ttf-mscorefonts-installer
Intenté buscar la fuente en el sistema de archivos, con:
ls /usr/share/fonts/truetype/msttcorefonts/
Esta carpeta acaba de tener el archivo README, con las instrucciones correctas sobre cómo instalarlo.
cat /usr/share/fonts/truetype/msttcorefonts/README
Necesitas una conexión a Internet para esto:
sudo apt-get install --reinstall ttf-mscorefonts-installer
¡ ttf-mscorefonts-installer
(como se muestra arriba, asegurándome de aceptar el EULA!) Y el problema fue resuelto.
Intenta agregar la línea
net.sf.jasperreports.awt.ignore.missing.font = true
a su archivo jasperreports.properties.
Lo resolví eligiendo ''SansSerif'' o ''Serif'' solamente y no ''Arial'' o ''Times New Roman''.
Muchas gracias a las respuestas anteriores. sudo apt-get install msttcorefonts
funciona (en nuestro entorno de desarrollo Ubuntu), pero no es una muy buena solución.
En cambio, agrupamos las fuentes con nuestra aplicación en función de este consejo . Su archivo JAR agrupa las siguientes fuentes,
- Arial
- Times New Roman
- Courier Nuevo
- Comic Sans MS
- Georgia
- Verdana
- Monospaced
Enlace directo para descargar el archivo jar: Maven ver 1.0. DynamicFonts
Oye ¿Tiene problemas para ver documentos producidos en Windows?
Puede probar una buena solución fácil:
yum instalar curl cabextract xorg-x11-font-utils fontconfig
Después de esto, necesito reiniciar mi sistema CentOS6.
Para CentOS:
wget msttcorefonts
Entonces:
tar -zxvf msttcorefonts.tar.gz
cp msttcorefonts/*.ttf /usr/share/fonts/TTF/
fc-cache -fv
Después de todo, reinicie JVM.
Puede hacerlo instalando fuentes, eso quiere decir donde quiera que quiera ejecutar esa aplicación en particular. La forma más simple es simplemente agregar esta línea bl a su archivo jrxml:
<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
Espero eso ayude.
Solución en 2 pasos (si usa centOS)
Descargue el paquete de rpm de Microsoft core fonts.
[root@WEBSVR~/]# wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
Instale el paquete de rpm.
[root@WEBSVR~/]# rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
Yo uso IReport para instalar la fuente:
herramientas -> opciones -> fuentes -> haga clic en instalar fuente
Luego selecciona la fuente y haz clic
-> exportar como extensión y escribir el nombre myfont.jar
agregue este jar y también spring.jar * a su ruta de compilación.
* copie spring.jar de Jaspersoft / iReport-3.7.0 / ireport / modules / ext
puede hacer sus fuentes personalizadas a través de iReport y convertir archivos como jars
Crear un informe de jaspe en múltiples idiomas (Unicode)
1) Instalar fuente en ireport desginer
2) crear extensión de fuente (lo usaremos en aplicaciones classpath)
3) instalar la fuente en el sistema operativo (opcional)
4) pegue todos los .ttf de la fuente en el directorio jre-> lib-> fonts (de lo contrario, la aplicación web arrojará la fuente de error no está disponible para JVM)