Seitenhistorie
Nuclos verwendet derzeit die Jasperreport-3.5.3 Library diese Version unterstützt leider noch keine Font-Extension. D.h. die Schriftarten für den Pdf-Druck beschränken sich auf ein paar Standartschriftarten.Trotzdem gibt es einen Weg
Um trotzdem eigene Schriftarten hinzuzufügen , dazu muss zum einen dem Nuclos-Installationsverzeichnis eine Ordnerstruktur ( "extensions/server") hinzugefügt werden und zum anderen das folgende Archiv jasperreports-fonts-3.6.1.jar entsprechend modifiziert werden.Das modifizierte Archiv könnte direkt in den Ordner "webapp/WEB-INF/lib " abgelegt werden, jedoch wird nach einem Update der Nuclos-Installation das Archiv verschwinden.müssen:
- die entsprechenden Fonts in Jasperreport-Studio installiert werden
- eine Nuclos Extension mit den gewünschten Fonts erstellt und zum Nuclet hinzugefügt werden
Das Einbinden von Fonts ist außerdem notwendig um systemübergreifend dasselbe Erscheinungsbild der erzeugten PDF zu gewährleisten.
An dieser Stelle stellen wir Ihnen die nach GPL v3 lizenzierte Schriftart FreeSans mit der passenden Extension zur Verfügung:
- Extension: nuclos-fonts-1.0.jar
Font im Jasperreport-Designer hinzufügen
Eine Schriftart wird im Designer unter Optionen->Font->Button:"Install Font" hinzugefügt.
Wichtig ist, dass der angegebene Family Name mit dem in der fonts.xml der verwendeten Extension angegebenen übereinstimmt, in dem Fall "Nuclos Sans Serif". Damit wird sichergestellt das auch wirklich die beim nuclos Server als Extension hinterlegte Schriftart verwendet wird.
Jetzt steht die Schriftart im Designer zur Verfügung.
Info |
---|
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. |
Modifizierung
Als Beispiel werden zum einen Arial aus den MsCoreFonts und asiatische Schriftzeichen "GoJuOn" installiert.
Nach dem Herunterladen jasperreports-fonts-3.6.1.jar werden
- die gewünschten TTF-Dateien hinzugefügt und
- die font.xml im Ordner "net/fs/jasperreports/fonts" entsprechend angepasst
Die gewünschten TTF-Dateien hinzugefügen
Im Bild links ist die Struktur des Jar's sichtbar. In den Font-Ordner werden die gewünschten TTF-Dateien abgelegt. Der Übersicht halber bekommt jede Schriftart ihren eigenen Ordner.
Die "font.xml" im Ordner "net/fs/jasperreports/fonts" entsprechend angepassen
Jede Schriftart wird in bean-Tags eingefasst. Die Originalstruktur wird auf folgende Weise
modifiziert:
|
---|
Installation
Das modifizierte Jar wird in dem zuvor angelegten Ordner "extension/server" abgelegt.
|
---|
Ergebnis
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 in unter org/nuclos/fonts/ bzw. dem neuen Unterverzeichnis ablegen
- die fonts.xml ergänzen
Dazu sehe beispielhaft den Eintrag für FreeSans:
Codeblock |
---|
<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