Estou tentando gerar um relatório com DynamicJasper, mas estou recebendo o seguinte erro:
net.sf.jasperreports.engine.util.JRFontNotFoundException:
Font 'Arial' is not available to the JVM.
msttcorefonts está instalado, mas acho que o JVM não está usando nenhuma fonte dele.
Estou usando o Ubuntu 10.04.
Como posso consertar isso?
Respostas:
Tentei instalar mscorefonts, mas o pacote estava instalado e atualizado.
sudo apt-get update sudo apt-get install ttf-mscorefonts-installer
Tentei pesquisar a fonte no sistema de arquivos, com:
ls /usr/share/fonts/truetype/msttcorefonts/
Esta pasta continha apenas o README, com as instruções corretas de instalação.
Você precisa de uma conexão com a Internet para isso:
sudo apt-get install --reinstall ttf-mscorefonts-installer
Eu reinstalei
ttf-mscorefonts-installer
(como mostrado acima, certificando-se de aceitar o EULA!) E o problema foi resolvido.fonte
Jasper reports está tentando ajudá-lo no desenvolvimento de seu relatório, afirmando que não pode exportar seu relatório corretamente, pois não consegue encontrar a fonte definida em
TextField
ouStaticText
<font fontName="Arial"/>
Sim, você pode desabilitar isso configurando net.sf.jasperreports.awt.ignore.missing.font como true, mas você terá inconsistências de exportação .
Sim, você pode instalar a fonte como fonte do sistema JVM (mas você precisa fazer isso em cada PC usado que pode gerar relatório e você ainda pode ter problemas de codificação ).
Da maneira correta!
Use extensões de fonte ! , se você gosta de criar o seu próprio (veja o link abaixo), os relatórios jasper também distribuem um jar (
jasperreports-fonts-x.x.x.jar
) de extensão de fonte padrão , que suporta fontNameDejaVu Sans
,DejaVu Serif
eDejaVu Sans Mono
<font fontName="DejaVu Sans"/>
Do JasperReport Ultimate Guide:
Links no StackOverflow sobre como renderizar fontes corretamente em pdf
Lista de verificação sobre como renderizar a fonte corretamente em pdf
Gere extensões de fonte com JasperSoft Studio
Gere extensões de fonte com iReport
fonte
Eu uso o IReport para instalar a fonte:
Em seguida, selecione a fonte e clique
adicione este jar e também spring.jar * ao seu caminho de construção.
* copie spring.jar de Jaspersoft \ iReport-3.7.0 \ ireport \ modules \ ext
fonte
sudo apt-get install msttcorefonts
funciona (em nosso ambiente de desenvolvimento Ubuntu), mas não é uma solução muito boa.Em vez disso, agrupamos as fontes com nosso aplicativo com base nesta dica . Seu arquivo JAR agrupa as seguintes fontes,
Link direto para baixar o jar: Maven versão 1.0. DynamicFonts
fonte
Para CentOS:
wget msttcorefonts
Então:
tar -zxvf msttcorefonts.tar.gz cp msttcorefonts/*.ttf /usr/share/fonts/TTF/ fc-cache -fv
Afinal, reinicie o JVM.
fonte
Existem três métodos para evitar esse problema.
Método 1: definindo ignorar propriedade de fonte ausente.
JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");
ou você pode definir essa propriedade inserindo a seguinte linha no arquivo .jrxml.
<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
Método 2: definindo a propriedade da fonte padrão.
JRProperties.setProperty("net.sf.jasperreports.default.font.name", "Sans Serif");
ou você pode definir essa propriedade inserindo a seguinte linha no arquivo .jrxml.
<property name="net.sf.jasperreports.default.font.name" value="Sans Serif"/>
Método 3: adicionando propriedade de fonte ausente.
Em primeiro lugar, instale as fontes ausentes no IReport selecionando "Ferramentas >> Opções >> Fontes >> Instalar fonte", em seguida, selecione todas as fontes e exporte-as clicando em "Exportar como extensão" com extensão .jar.
Você pode usar este jar para Jasperreports-font.XXXjar que estará presente em sua biblioteca de projeto ou classpath.
fonte
Resolvi isso escolhendo 'SansSerif' ou 'Serif' apenas e não 'Arial' ou 'Times New Roman'.
fonte
Se você estiver usando o maven em seu projeto, pode apenas adicionar a dependência jasper-fonts a pom.xml:
<dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports-fonts</artifactId> <version>6.8.1</version> </dependency>
Instalar a fonte ausente no sistema pode ser uma solução funcional, mas não para mim, eu não queria ter que instalar as fontes ausentes após cada implantação em um novo servidor, em vez disso, optei por incorporar a fonte ao aplicativo.
Saudações.
fonte
pode fazer suas fontes personalizadas através do iReport e convertendo como arquivos jars
fonte
Tente adicionar a linha
net.sf.jasperreports.awt.ignore.missing.font = true
ao seu arquivo jasperreports.properties.
Jasper para de encontrar uma fonte
fonte
Você pode fazer isso instalando fontes, o que significa em todos os lugares onde você deseja executar aquele aplicativo específico. A maneira mais simples é adicionar esta linha bl ao seu arquivo jrxml:
<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
Espero que ajude.
fonte
Para Debian
adicionar
non-free contrib
para deb e deb-src em /etc/apt/sources.list ou seja:
deb http://ftp.debian.org/debian/ squeeze main non-free contrib deb-src http://ftp.debian.org/debian/ squeeze main non-free contrib
Então
apt-get update apt-get install msttcorefonts
Claro, você precisará reiniciar o jasperserver. ie:
/opt/jasperreports-server-cp-4.5.0/ctlscript.sh restart
Mude para sua versão / caminho.
fonte
Enfrentei o problema com meu aplicativo da web baseado no Spring 3 e implantado no Weblogic 10.3 no Oracle Linux 6. A solução mencionada no link não funcionou para mim.
Tive que seguir os seguintes passos - 1. Copie os arquivos de fonte Arial * .ttf para o diretório JROCKIT_JAVA_HOME / jre / lib / fonts 2. Faça as entradas das fontes em fontconfig.properties.src 3. Reinicie o cluster no console do 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
fonte
Criar relatório jasper em vários idiomas (Unicode)
1) Instale a fonte no ireport desginer
2) criar extensão de fonte (vamos usá-la no classpath de aplicativos)
3) instalar fonte no sistema operacional (opcional)
4) cole todos os .ttf da fonte no diretório jre-> lib-> fonts (caso contrário, o aplicativo da web lançará um erro de fonte não disponível para JVM)
fonte
Na verdade, resolvi esse problema de uma maneira muito simples
home path
gosto/root
.fonts
all your font files
para.fonts
, você pode copiar a fonte deC:\windows\fonts
se usar o Windows.sudo apt-get install fontconfig
fc-cache –fv
para reconstruir caches de fontes.fonte
Solução em 2 etapas (se você estiver usando o centOS)
Baixe o pacote rpm das fontes principais da Microsoft.
[root@WEBSVR~/]# wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
Instale o pacote rpm.
[root@WEBSVR~/]# rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
fonte
Copie suas fontes no seguinte diretório JDK_HOME \ jre \ lib \ fonts
fonte
Ei, tendo problemas para visualizar documentos produzidos no Windows?
Você pode tentar uma boa solução fácil:
Depois disso, preciso reiniciar meu sistema CentOS6.
Fonte: http://mscorefonts2.sourceforge.net/
fonte