Base de conhecimento

Erro: Caused by: java.io.IOException: Problem reading font data - Como resolver?

5 minutos de leitura
Copiar

Problema

Quando estiver configurado a impressão e/ou geração de PDF dos Documentos Fiscais emitidos e não houver permissão, ou não existir a pasta de arquivos temporários usados pelo serviço Oobj DFe Client haverá o erro abaixo nos registros do serviço, que é salvo no caminho padrão: 

C:\Oobj\Aplicativos\Oobj\motor-periferico-std\logs\ wrapper-motor-periferico-std.log

0106 20:10:34,734 [Thread-38] DEBUG RGerarDanfce3_10 - Preenchendo bean do DANFE
Exception in thread "Thread-38" java.lang.ExceptionInInitializerError
    at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:96)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:73)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
    at net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java:186)
    at net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:201)
    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:109)
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:667)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:983)
    at br.com.oobj.relatorio.RRelatorioJasper.gerarJasperPrint(RRelatorioJasper.java:170)
    at br.com.oobj.relatorio.RRelatorioJasper.gerarJasperPrint(RRelatorioJasper.java:155)
    at br.com.oobj.RGerarDame.gerarJasperPrint(RGerarDame.java:368)
    at br.com.oobj.me.impressao.GeradorDanfce.gerarDAME(GeradorDanfce.java:76)
    at br.com.oobj.me.impressao.GeradorDameDelegator.gerarDAME(GeradorDameDelegator.java:28)
    at br.com.oobj.me.impressao.ServicoImpressao.gerarJasperPrintDocumentoPrincipal(ServicoImpressao.java:382)
    at br.com.oobj.me.impressao.ServicoImpressao.processar(ServicoImpressao.java:258)
    at br.com.oobj.me.impressao.ConsumidorImpressao.novaMensagem(ConsumidorImpressao.java:102)
    at br.com.oobj.util.fila.ConsumidorNotificante.processarComCommitSincrono(ConsumidorNotificante.java:333)
    at br.com.oobj.util.fila.ConsumidorNotificante.execute(ConsumidorNotificante.java:178)
    at br.com.oobj.util.fila.ConsumidorNotificante.run(ConsumidorNotificante.java:135)
    at br.com.oobj.me.impressao.ConsumidorImpressao.run(ConsumidorImpressao.java:75)
Caused by: net.sf.jasperreports.engine.JRRuntimeException: java.io.IOException: Problem reading font data.
    at net.sf.jasperreports.engine.fonts.SimpleFontFace.setTtf(SimpleFontFace.java:181)
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.parseFontFace(SimpleFontExtensionHelper.java:351)
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.parseFontFamily(SimpleFontExtensionHelper.java:273)
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.parseFontFamilies(SimpleFontExtensionHelper.java:237)
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.loadFontFamilies(SimpleFontExtensionHelper.java:198)
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.loadFontFamilies(SimpleFontExtensionHelper.java:167)
    at net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.getExtensions(FontExtensionsRegistry.java:58)
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:109)
    at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:82)
    ... 20 more
Caused by: java.io.IOException: Problem reading font data.
    at java.awt.Font.createFont0(Font.java:1000)
    at java.awt.Font.createFont(Font.java:877)
    at net.sf.jasperreports.engine.fonts.SimpleFontFace.setTtf(SimpleFontFace.java:173)
    ... 28 more

Solução/Procedimento

Para corrigir o erro, veja os passos a seguir:

1 –  Vá até a pasta abaixo e abra o arquivo wapper.conf com um editor de texto (recomendamos o Notepad++):

C:\Oobj\Aplicativos\Oobj\motor-periferico-std\conf

2 – Pesquise no arquivo que acabou de abrir pelo trecho abaixo:

# Java Additional Parameters

Para facilitar a pesquisa, use o comando “Ctrl + F” para abrir o Localizador de palavras, cole o trecho acima no campo de pesquisa e clique em Localizar próximo:

3 – Adicione o parâmetro em destaque na imagem abaixo:

Nas versões mais recentes, o parâmetro em questão, já vem adicionado por padrão.

Se o parâmetro já existir, vá ao próximo passo. Caso não exista o parâmetro, adicione-o.

wrapper.java.additional.6=-Djava.io.tmpdir=temp

 

Você deve ter atenção apenas a um detalhe. Cada parâmetro tem um número sequencial que deve ser respeitado. No nosso exemplo, o parâmetro que adicionamos está com o número “6” (seis), que é a sua posição. Basta você verificar qual o número do último parâmetro existente, e informar o próximo número para o parâmetro que vamos adicionar.

Após ter adicionado o parâmetro, salve o arquivo e feche o editor de texto.

 

4 – Vá até a pasta do serviço Oobj, no caminho abaixo:

C:\Oobj\Aplicativos\Oobj\motor-periferico-std

 

Nessa pasta, caso não exista, crie uma nova pasta com o nome:  temp

 

5 – Por último, basta reiniciar o serviço Oobj DFe Client. Para isso, siga os passos:

    Abra o Executar do Windows através do comando: ”  + R ” e digite services.msc


    Procure pelo serviço Oobj DFe Client e então clique em Reiniciar.

    Aguarde o reinicialização do serviço:

6 – Pronto! Aguarde mais alguns segundos após o serviço já ter reiniciado, que seu documento será impresso. Nos logs do serviço, o mesmo que viu o erro ocorrer, deve mostrar o documento sendo impresso. Veja um exemplo:

1307 11:11:55,056 [Thread-39] DEBUG ServicoImpressao - Gerando DAME da ME: 43160785813757000157655010304884171131447741 - inicio
1307 11:11:55,069 [Thread-39] DEBUG RGerarDanfce3_10 - Preenchendo bean do DANFE
1307 11:13:19,938 [Thread-39] DEBUG ServicoImpressao - Gerando DAME da ME: 43160785813757000157655010304884171131447741 - fim
1307 11:13:19,939 [Thread-39] DEBUG ServicoImpressao - Salvando DAME - inicio: C:\Oobj\Integracao\PDF\43160785813757000157655010304884171131447741.pdf
1307 11:13:20,540 [Thread-39] DEBUG ServicoImpressao - Salvando DAME - fim
1307 11:13:20,540 [Thread-39] DEBUG ServicoImpressao - Gerando documentos adicionais - inicio
1307 11:13:20,540 [Thread-39] DEBUG CustomizadoDelegator - Nenhum gerador de documento especifico para o tipo, usarei GeradorBoleto: tpcustom-nfe-sefaz
1307 11:13:20,547 [Thread-39] INFO  GeradorBoleto - XML nao possui conteudo. Nao gerarei boleto
1307 11:13:20,547 [Thread-39] DEBUG ServicoImpressao - Gerando documentos adicionais - fim
1307 11:13:20,547 [Thread-39] INFO  ServicoImpressao - 0 documentos adicionais gerados
1307 11:13:20,548 [Thread-39] DEBUG ServicoImpressao - Imprimindo - inicio: IMPRESSAO OOBJ - EMITENTE: 85.813.757/0001-57 - NUMERO: 30488417 - SERIE: 501 - TIPO DOCUMENTO: Principal
1307 11:13:20,548 [Thread-39] WARN  Impressora - MediaTray invalida, utilizando a padrao: PADRÃO
1307 11:13:20,549 [Thread-39] DEBUG Impressora - EPSON TM-T20 Receipt - impressao em retrato m: IMPRESSAO OOBJ - EMITENTE: 85.813.757/0001-57 - NUMERO: 30488417 - SERIE: 501 - TIPO DOCUMENTO: Principal
1307 11:13:20,549 [Thread-39] INFO  Impressora - Imprimindo usando implementacao do JasperReports...
1307 11:14:43,504 [Thread-39] DEBUG Impressora - EPSON TM-T20 Receipt - impressao concluida ou enviada para o spool
1307 11:14:43,505 [Thread-39] DEBUG ServicoImpressao - Tempo de envio para impressora (em milissegundos): 82957
1307 11:14:43,505 [Thread-39] DEBUG ServicoImpressao - Imprimindo - fim: IMPRESSAO OOBJ - EMITENTE: 85.813.757/0001-57 - NUMERO: 30488417 - SERIE: 501 - TIPO DOCUMENTO: Principal

Referência

Não encontrou o que procurava?