Skip to main content
Skip table of contents

Reportschriftarten

Grundlagen

Schriftarten können vom Bearbeiter im Report hinterlegt werden. Dies sollte in den Stilen vorgenommen werden, um das Layout des Report ganzheitlich anzupassen. Hierbei gilt es zu beachten, dass Unterreports separat eingestellt werden müssen.

JasperStudio erlaubt die Auswahl aller im System befindlichen Schriftarten über die Drop-Down-Box. Nun liegt hierin aber das Problem. Die ausgewählte Schriftart ist zwar auf dem Client-System vorhanden, muss es aber nicht auf dem Applikationsserver. Das Problem tritt mit der Schriftart 'Tahoma' auf Linux-Systemen schon auf. Zwar kann der Report ohne Fehler gefüllt werden, doch wird ie eingestellte Schriftart beim Export als PDF-Datei oder bei der Anzeige im Web Client nicht verwendet.

In älteren JasperReports Versionen konnte pro Textfeld eine PDF-Schriftart hinterlegt werden, die sich aber nicht mit der normalen Schriftart deckt, noch Formatierung in HTML-Texten darstellen kann. Im JasperStudio wird diese Einstellung nicht mehr angeboten, da sie nicht mehr notwendig sind und wird als veraltete Einstellung als Warnung ausgegeben. In älteren Reports sollte diese Einstellung daher entfernt/geleert werden.

Die Lösung liegt in der 'Font-Extension' von JasperReports. Diese erlaubt beliebige True Type Schriftarten der Anwendung hinzuzufügen, ohne dass sie im System installiert sein müssten. Die Basis hierfür ist eine selbst zu erstellende Bibliothek, die in das custExt-Verzeichnis im Server und im Client kopiert werden muss. Im Groben enthält diese Bibliothek (eine ZIP-Datei mit der Endung .jar) alle Schriftart-Dateien (*.ttf) und eine beschreibende XML-Datei, in der alle ttf-Dateien referenziert sind.

Aus lizenz-rechtlichen Gründen ist es CURSOR nicht erlaubt, häufig benötigte Windows-Schriftarten direkt mit der Version auszuliefern. Eine Vorlage und die Unterstützung kann beim CURSOR-Support gerne erfragt werden.

Schriftart-Bibliothek erstellen

1. Das Verzeichnis fontlibrary erstellen
2. In diesem Verzeichnis die Datei jasperreports_extension.properties mit folgendem Inhalt anlegen:

CODE
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.font=font/fonts.xml

3. Das Unterverzeichnis font erstellen
4. In dieses Verzeichnis nun die Schriftart-Dateien (*ttf) kopieren
5. In diesem Verzeichnis die Datei fonts.xml mit folgendem Inhalt anlegen:  

XML
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
 <fontFamily name="Tahoma">
  <normal>font/tahoma.ttf</normal>
  <bold>font/tahomabd.ttf</bold> <!-- auch 'italic' und 'boldItalic' -->
  <pdfEncoding>Identity-H</pdfEncoding>
  <pdfEmbedded>true</pdfEmbedded>
  <exportFonts>
   <export key="net.sf.jasperreports.html">Tahoma, Helvetica, sans-serif</export>
   <export key="net.sf.jasperreports.xhtml">Tahoma, Helvetica, sans-serif</export>
  </exportFonts>
 </fontFamily>
</fontFamilies>

6. Den Inhalt des Verzeichnisses fontlibrary zippen und als cursor-font.jar ablegen

Schriftart-Bibliothek einbinden

Die erstellte Bibliothek muss nun im Applikationsserver und dem Client zur Verfügung erstellt werden. Dieser Vorgang ist ähnlich wie ein Version-Patch zu behandeln.

Applikationsserver

  • Kopieren nach JBoss\modules\custom\main

  • Aufnahme der Bibliothek in der JBoss\modules\custom\main\module.xml

  • Der Applikationsserver muss nun neu gestartet werden

Client

  • Kopieren nach Client\custExt

  • Das Verzeichnis mit der neuen Bibliothek per Client-Update verteilen

JasperStudio

  • Die Schriftart muss im System installiert sein.

  • Die Bibliothek muss in das lib-Verzeichnis kopiert werden.

  • Beim Bearbeiten wird der Klassenpfad auf die Datei lib/cursor-font.jar automatisch erzeugt

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.