version d'iReport: 3.7.1
J'ai abordé ce problème de deux manières.
Ma première méthode
Je crée une page pdf
dans iReport
et l'un des champs (de la base de données) est défini sur une police Gujarati-Salarl (une police pour une langue régionale de l'Inde).
Cette police est disponible dans la liste des polices de iReport
. Lorsque je clique sur Aperçu, j'obtiens la sortie souhaitée, avec le champ dans le style de police requis.
Tout va bien jusqu'à ici.
Mais le fichier pdf
généré contient toujours la même police originale en caractères anglais.
Le résultat est le même si j'appelle le rapport depuis l'application ou depuis un fichier Java
.
Après un peu d'étude, j'ai trouvé ceci, une deuxième méthode
JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", "C:\\Gujrati-Saral-1.ttf");
Ceci définit la police de la pdf
sur la police ttf
fournie, mais maintenant la totalité de la pdf
est dans la police Guarati-saral, ce qui n’est pas ce que je recherche.
Existe-t-il un moyen d’appliquer spécifiquement cette police uniquement à ce domaine particulier?
ou
en passant par la deuxième méthode, y a-t-il un moyen de ne pas appliquer la police Guarati-saral à tous les autres champs sauf celui requis?
Vous devriez utiliser le mécanisme Font Extensions
.
Une fois la police créée et exportée sous forme de fichier jar, vous devez ajouter le fichier jar généré au chemin d'accès aux classes de l'application.
Vous pouvez trouver plus d’informations sur l’utilisation de Font Extensions
ici .
Pour ceux qui ont besoin de la langue russe dans Jasper Reports (du moins dans les versions précédentes), la combinaison suivante fait l'affaire sans utiliser l'extension de police:
Nom de la police: SanSerif PDF Police: Courier PDF Codage: CP1251 PDF incorporé: Oui (incertain, cela peut fonctionner même sans)
Alexey Bakhmutov
si vous rencontrez des problèmes pour afficher les caractères UTF-8 dans le fichier pdf, à partir de la version 4.8.0 de l’IReport, inutile de rien faire! Il suffit de changer la police des cellules du tableau de sanserif à Dejavu sans. c'est tout.