La fuente no está disponible para la JVM con Jasper Reports
-
26-09-2019 - |
Pregunta
Estoy intentando 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 utiliza ninguna fuente.
Estoy usando Ubuntu 10.04.
¿Cómo puedo arreglar esto?
Solución
He intentado instalar mscorefonts, pero el paquete fue instalada y puesta al día.
sudo apt-get update
sudo apt-get install ttf-mscorefonts-installer
He intentado buscar la fuente en el sistema de archivos, con:
ls /usr/share/fonts/truetype/msttcorefonts/
Esta carpeta sólo tenía el README, con las instrucciones correctas sobre cómo instalar.
cat /usr/share/fonts/truetype/msttcorefonts/README
Se necesita una conexión a Internet para esto:
sudo apt-get install --reinstall ttf-mscorefonts-installer
Reinstalé ttf-mscorefonts-installer
(como se muestra arriba, asegurándose de aceptar el EULA!) Y el problema se solucionó.
Otros consejos
JasperReports plantea una JRFontNotFoundException en el caso de que la fuente utilizada dentro de una plantilla de informe no esté disponible para la JVM como fuente del sistema o como fuente procedente de una extensión de fuente JR.Esto garantiza que se eviten todos los problemas causados por discrepancias en las métricas de fuentes y que tengamos una alerta temprana sobre la inconsistencia.
Jasper informa que está intentando ayudarte en el desarrollo de su informe, indicando que no puede exportar su informe correctamente ya que no puede encontrar la fuente definida en TextField
o StaticText
<font fontName="Arial"/>
sí tu puedes desactivar esto configurando net.sf.jasperreports.awt.ignorar.fuente.faltante a verdad pero tendrás inconsistencias en las exportaciones.
sí tu puedes instalar la fuente como fuente del sistema JVM (pero debe hacerlo en cada PC utilizada que pueda generar informes y aún puede tener problemas de codificacion).
¡La forma correcta!
Usar Extensiones de fuente!, si desea crear el suyo propio (consulte el enlace a continuación), jasper reports también distribuye un jar de extensión de fuente predeterminado (jasperreports-fonts-x.x.x.jar
), que admite fontName DejaVu Sans
, DejaVu Serif
y DejaVu Sans Mono
<font fontName="DejaVu Sans"/>
De la guía definitiva de JasperReport:
Alentamos encarecidamente a las personas a usar solo fuentes derivadas de las extensiones de fuentes, porque esta es la única forma 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 ofrece el riesgo de que los informes no funcionen correctamente cuando se implementan en una nueva máquina que podría no tener esas fuentes instaladas
Enlaces en StackOverflow sobre cómo representar fuentes correctamente en pdf
Lista de verificación sobre cómo representar correctamente la fuente en pdf
Yo uso IReport para instalar la fuente:
Herramientas -> Opciones -> fuentes -> haga clic en instalar la fuente
A continuación, seleccione la fuente y haga clic en
-> Exportar como extensión y el nombre de tipo myfont.jar
añadir este frasco y también spring.jar * a su trayectoria de la estructura.
* copia spring.jar de Jaspersoft \ iReport-3.7.0 \ iReport \ modules \ ext
Para CentOS:
A continuación:
tar -zxvf msttcorefonts.tar.gz
cp msttcorefonts/*.ttf /usr/share/fonts/TTF/
fc-cache -fv
Después de todo, reiniciar JVM.
Fábrica de sudo apt-get install msttcorefonts
(en nuestro entorno de desarrollo de Ubuntu), pero no es una solución muy buena.
En su lugar, paquete de las fuentes con nuestra aplicación basado en esta punta. Su archivo JAR agrupa las siguientes fuentes,
- Arial
- Times New Roman
- Courier New
- Comic Sans MS
- Georgia
- Verdana
- Monospaced
Enlace directo al tarro de descarga: Maven ver 1.0. DynamicFonts
Hay tres método para evitar tal problema.
Método 1:. Ajuste por falta ignore propiedad de fuente
JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");
o se puede establecer esta propiedad mediante la introducción de la línea siguiente en .jrxml archivo.
<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
Método 2:. Estableciendo la propiedad de fuente por defecto
JRProperties.setProperty("net.sf.jasperreports.default.font.name", "Sans Serif");
o se puede establecer esta propiedad mediante la introducción de la línea siguiente en .jrxml archivo.
<property name="net.sf.jasperreports.default.font.name" value="Sans Serif"/>
Método 3:. Añadiendo que faltan propiedad de fuente
En primer lugar instalar fuentes en IReport falta seleccionando "Herramientas >> Opciones >> Fuentes >> Instalación de fuente" y seleccione la fuente de todo esto y exportación Al hacer clic en "Exportar como extensión" .jar con la extensión.
Puede utilizar este frasco para jasperreports-font.X.X.X.jar que estará presente en su biblioteca o ruta de clase del proyecto.
He resuelto esto eligiendo 'SansSerif' o 'serif' y no 'Arial' o 'Times New Roman'.
puede hacer que sus fuentes personalizadas a través de iReport y la conversión de archivos como tarros
Trate de añadir la línea
net.sf.jasperreports.awt.ignore.missing.font = true
a su archivo jasperreports.properties.
Puede hacerlo mediante la instalación de fuentes, que los medios de todo el mundo que desee ejecutar esa aplicación en particular. forma más sencilla es añadir esta línea a su archivo bl jrxml:
<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
Espero que ayuda.
Me enfrentaba al problema con mi aplicación web basada en la primavera 3 y desplegado en WebLogic 10.3 en Oracle Linux 6. La solución mencionada en el enlace no funcionó para mí.
que tenía que seguir los siguientes pasos - 1. Copia del Arial * archivos de fuentes .ttf a JROCKIT_JAVA_HOME / jre / lib / fuentes 2. Las entradas de hacer de los tipos de letra en fontconfig.properties.src 3. Reiniciar el clúster de 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
Para Debian
Añadir
non-free contrib
a 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 que tendrá que JasperServer reinicio. es decir:
/opt/jasperreports-server-cp-4.5.0/ctlscript.sh restart
Cambiar para su versión / ruta.
Crear informe de Jasper en varios idiomas (Unicode)
1) Instalar fuente en iReport desginer
2) crear la extensión de la fuente (lo vamos a utilizar en aplicaciones de ruta de clase)
3) instalar la fuente en OS (opcional)
4) pegar todos .ttf de fuente en jre-> lib-> fuentes de directorio (de lo contrario la aplicación web va a tirar de la fuente de error no está disponible para JVM)
Si está utilizando Maven en su proyecto, usted puede simplemente añadir la dependencia Jasper-fonts a pom.xml:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.8.1</version>
</dependency>
La instalación de la fuente que falta en el sistema puede ser una solución de trabajo pero no para mí, yo no quiero tener que instalar las fuentes que faltan después de cada despliegue en un nuevo servidor, en vez he optado por la incorporación de la fuente con la aplicación .
Saludos.
En realidad me fijo este problema de una manera muy sencilla
- Cesta de la
home path
, como/root
- crear una carpeta con el nombre
.fonts
- copiar su
all your font files
a.fonts
, puede copiar la fuente deC:\windows\fonts
Si utiliza Windows. -
sudo apt-get install fontconfig
-
fc-cache –fv
a fuentes rebuid cachés.
Solución en 2 pasos (si está utilizando centOS)
-
Descargar el paquete de fuentes de núcleo rpm Microsoft.
[root@WEBSVR~/]# wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
-
Instalar paquete rpm.
[root@WEBSVR~/]# rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
Copiar sus fuentes en el siguiente directorio JDK_HOME \ jre \ lib \ fuentes
Hola Tener problemas para ver los documentos producidos en Windows?
Puede intentar una solución bien fácil:
yum install rizo cabextract xorg-x11-font-utils fontconfig
Después de esto necesito reiniciar mi sistema CentOS6.