In Folgendem soll erläutert werden, wie sie Fonts zu Jaspersoft Studio hinzufügen und eine eigene Fonterweiterung erstellen. Das Einbinden von Fontextensions ist notwendig, um systemübergreifend dasselbe Erscheinungsbild der erzeugten PDF zu gewährleisten.
JasperReports Font Extension
Bevor auf die Erstellung eigener Font Extensions eingegangen wird, sei darauf hingewiesen, dass Nuclos Versionen >= 4.50 mit einer vorinstallierten JasperReports Font Extension ausgeliefert wird. Nachfolgende Fonts können sie bereits verwenden, um ein einheitliches Reportaussehen zu erhalten, ohne eine eigene Fonterweiterung zu erstellen:
- DejaVu Sans
- DejaVu SansMono
- DejaVu Serif
Beispieldateien
Damit sie dem Tutorial folgen können, stellen wir Ihnen an dieser Stelle, die nach GPL v3 lizenzierte Schriftart, FreeSans mit der passenden Extension zur Verfügung:
- Extension: nuclos-fonts-1.0.jar
Font in Jaspersoft Studio hinzufügen (ggf. "Als Administrator ausführen")
Eine Schriftart wird in Jaspersoft Studio unter "Preferences" → "Jaspersoft Studio" → "Fonts" hinzugefügt:
Der Family Name, welcher hier angegeben wird, dient später zum Zugriff auf genau diesen Font. Wählen sie in den Tabs "Normal", "Bold", "Italic" und "Bold Italic" jeweils die entsprechende Fontdatei aus. Sobald sie auf Finnish drücken, steht der Font in den Properties zur Auswahl:
Wenn die Reports über den Designer getestet werden sollen, muss an dieser Stelle ein Export der Schriftart durchgeführt werden. Darauf achten, dass beim Export die Endung "jar" angegeben wird. Das exportierte Font-Jar wird wiederum unter Opionen->Classpath hinzugefügt. Das funktioniert nur wenn der Designer auf einer höheren Jasper-Version basiert als 3.6.0.
Eine eigene Extension erzeugen
Extensions sind Archive mit der Dateiendung .jar, als Vorlage für eine Fontextension kann die hier bereit gestellte nuclos-fonts-1.0.jar verwendet werden.
Um eine Schriftart zur Extension hinzuzufügen sind folgende Schritte notwendig.
- (optional) einen neuen Unterordner im Verzeichnis org/nuclos/fonts/ anlegen
- die zu verwendenden .ttf files für die gewünschten Schriftstile einer Fontfamile unter org/nuclos/fonts/ bzw. dem neuen Unterverzeichnis ablegen
- die fonts.xml ergänzen
Dazu siehe beispielhaft den Eintrag für FreeSans:
<bean id="nuclosSansSerif" class="net.sf.jasperreports.engine.fonts.SimpleFontFamily"> <property name="name" value="Nuclos Sans Serif"/> <property name="normal" value="org/nuclos/fonts/basic/FreeSans.ttf"/> <property name="bold" value="org/nuclos/fonts/basic/FreeSansBold.ttf"/> <property name="italic" value="org/nuclos/fonts/basic/FreeSansOblique.ttf"/> <property name="boldItalic" value="org/nuclos/fonts/basic/FreeSansBoldOblique.ttf"/> <property name="pdfEncoding" value="Identity-H"/> <property name="pdfEmbedded" value="true"/> </bean>
Extension einbinden
Die Extension wird regulär als Server-Extension zum gewünschten Nuclet hinzugefügt.
3 Comments
Rico Clauß
Diese Seite könnte ein Update vertragen. Das definieren eines font mappings ist insbesondere auch für die Verwendung von html-Tags (fett, kursiv) innerhalb eines Textfeldes notwendig. Super wäre auch eine fertige Extension .jar mit gängigen freien Schriftarten hier hochzuladen.
Jolip
Dem kann ich mich nur anschließen..
Rolf Vogel
Das sehe ich auch so.