Le moyen le plus simple que je peux trouver est d'utiliser le style par défaut dans le rapport et de changer son nom de police via java avant de remplir le rapport.
Exemple
définir un style (je vais utiliser le style par défaut) dans jrxml, puisque de cette façon que je ne dois pas l'assigner à textField
et il est plus rapide d'obtenir de JasperReport
objet
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="reputation" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="a88bd694-4f90-41fc-84d0-002b90b2d73e">
.....
<style name="myStyle" isDefault="true" fontName="DejaVu Sans"/>
....
</jasperReport>
en java chargé votre rapport (jrxml), le changement de style par défaut nom de la police puis remplir le rapport
JasperReport report = JasperCompileManager.compileReport("jmyReport.jrxml");
report.getDefaultStyle().setFontName("NewFontName");
JasperPrint jasperPrint = JasperFillManager.fillReport(report, paramMap,datasource);
Hower n'oubliez pas que vous devez ajouter toutes vos polices Font Extensions!, si vous voulez vous assurer que c'est bien fait lors de votre exportation vers pdf.
Vous pouvez également utiliser le style non par défaut, dans ce cas, vous devez assigner à textField
et trouver dans le JRStyle[] styles = report.getStyles();
en comparant le JRStyle#getName()
styles conditionnel est spécial pour de tels cas. Vous n'avez pas besoin de recompiler les modèles pour utiliser les nouveaux styles modifiés –