Olá Pessoal, tudo bom? Como vão vocês?
Em 2011 eu fiz um Post sobre um problema comum a muitos desenvolvedores sobre embeber uma fonte personalizada em relatórios JasperReports.
Agora, vamos usar o Jaspersoft® Studio para realizar a mesma tarefa.
Para acompanhar este artigo
Criei um banco de dados simples, com uma tabela chamada produtos, contendo os campos selecionados como mostra a Figura 1.
O relatório foi criado usando o assistente do Jaspersoft® Studio, onde o resultado final, após minhas pequenas alterações, é o que mostra a Figura 2.
Tenham em mente que este artigo não vai ensiná-los a criar relatórios e sim como contornar um problema comum entre os desenvolvedores Java. Farei posts adiante sobre como criar relatórios com Jaspersoft® Studio.
Trabalhando com fontes personalizadas no relatório
Após desenhar o relatório, chega o momento de finalizar a “arte” com alguns toques e, em meio as mudanças, eis que surge a ideia de personalizar a fonte também do texto contido no relatório.
No exemplo que fiz, os textos fixos foram todos personalizados com uma fonte que possuo em minha máquina, chamada Impact.
Embora esta fonte seja importante para o design do meu relatório, não tenho garantias que ela exista no servidor onde hospedo meus aplicativos. Logo, o que parece simples, pode se tornar um pesadelo se não for eu o responsável pela administração do sistema operacional.
Adicionando a fonte ao aplicativo
Graças ao problema de ausência de fontes em servidores de hospedagem, muitos desenvolvedores não podiam depender da empresa ou administrador que fornece a máquina onde disponibilizam se encontram aplicativos, principalmente quando se trata de uma hospedagem compartilhada. É nisto que o JasperReports inclui a possibilidade de ter todas as fontes que usou em seu relatório em produção.
Adicionando e exportando a fonte no Jaspersoft® Studio
Vá no menu Window > Preferences (menu Jasper Studio >Preferences no Mac OS X) e, na digite Fonts, na parte superior de pesquisa. Clique em Jaspersoft Studio>Fonts.
Através do botão Add selecionamos as fontes que desejamos importar no Jaspersoft® Studio.
Depois de importadas, podemos selecionar todas elas e exportá-las através do botão Export.
No exemplo que explico, chamei o arquivo que exportei de font.jar. É justamente este arquivo que vou adicionar em meu projeto, seja usando o Maven, no Eclipse IDE ou NetBeans IDE.
A fonte como uma biblioteca no seu aplicativo Web pelo Eclipse IDE
No Eclipse, basta clicar com o direito do mouse sobre o projeto, selecionar o item Properties. Na caixa de diálogo Properties, vamos em Java Build Path, na aba Libraries. Para adicionarmos a biblioteca font.jar, vamos no botão Add External JARs.
Para projetos Java EE no Eclipse IDE, adicione as bibliotecas do projeto no aplicativo Web. Este item está na janela Properties, em Deployment Assembly. É neste local que determinamos quais bibliotecas serão exportadas ao executarmos o servidor Java.
Siga os passos informados a seguir para adicionar as bibliotecas:
1. Clique no botão Add, a caixa de diálogo New Assembly Directive surge. Esta caixa de diálogo é a responsável por selecionarmos as bibliotecas do projeto em Java Build Path Entries.
2. Em Next, veremos todas as bibliotecas que dispomos em Java Build Path. Selecionem todas – as bibliotecas para executar o relatório JasperReports devem estar presentes – finalizando no botão Finish.
3. Retornando ao diálogo Properties, no item Deployment Assembly, temos todas as bibliotecas que serão adicionadas ao diretório lib do projeto, incluindo font.jar.
A fonte como uma biblioteca no seu aplicativo Web pelo NetBeans IDE
No NetBeans IDE, basta adicionar em Libraries, clicando com o direito do mouse e selecionando, no menu de contexto, o item Add JAR / Folder.
Antes e depois da fonte adicionada ao projeto
Para satisfazer a curiosidade do que será visto, temos a Figura 8 que mostra um relatório gerado, em formato PDF, sem a fonte no diretório lib do projeto. Note a diferença com a Figura 9 em relação ao formato da fonte, principalmente do título “Produtos”.
O projeto para download
Clique aqui para baixar o projeto em Eclipse e alterá-lo como desejar.
junho 10th, 2016 9:30
Bom dia, estou com o seguinte problema. criei o relatório em jasper,porém ao gerar em PDF está vindo desconfigurado e os campos não está vindo em negrito.
obs: em qualquer outro formato funciona.
junho 13th, 2016 22:46
@Cleiton,
Com fontes personalizadas, precisa ter certeza de que elas estão inclusas no seu aplicativo, pois o comportamento que cita é a falta das fontes.
janeiro 24th, 2017 13:19
Edson, uma dúvida.
Enquanto estou rodando a aplicação dentro do Eclipse, as fontes no relatório estão OK, funcionando perfeitamente. Porém após gerar o .jar as fontes deixam de funcionar.
Eu gerei o .jar com as fontes dentro e adicionei ao classpath do projeto, porém mesmo assim, ao usar o JasperExportManager, o pdf gerado sair sem as fontes.
Alguma sugestão?
fevereiro 3rd, 2017 15:20
@Rodrigo,
Só se o JAR não está sendo incluso no aplicativo para ele não funcionar.
setembro 4th, 2018 11:29
Olá!
Estou com problemas em algumas fontes, por exemplo: Arial e Edwardian Script ITC (fonte cursiva). Ambas ao colocar no relatório (na aba design do jasper studio) ficam todas emboladas, ou seja, tadas as letras ficam ocupando o espaço de uma só. Ambas são fontes true type. QQ ajuda é bem vinda.
Grato.
fevereiro 5th, 2019 13:40
Muito Obrigado! ajudou muito, pois estava nisso a um tempo e não conseguia alterar a fonte que vinha no relatorio gerado em PDF…agora consegui
junho 17th, 2019 11:59
Olá, estou com uma duvida, estou gerando um relatorio com o eclipse que no jasper report studio com grafico mas quando chamo na aplicação o grafico não aparece. se algem puder me ajudar eu agradeço.
outubro 22nd, 2019 6:45
What is JasperReports used for?
dezembro 2nd, 2019 13:49
@Fitri
JasperReports any version. Jaspersoft® Studio 6+