Sprache: Deutsch · English
Formatierungs-Rezepte für JasperReports – Fett, Zahlenformate, Frames/Adressen, Hyperlinks, Markup und Umbrüche.
REFERENZ ANWENDUNGSENTWICKLER STAND: JUL 2026 GILT FUER NUCLOS 4.2026.X
Auf dieser Seite
Das Bold-Flag wirkt nur in der Designer-Vorschau – im PDF erfolgt keine Umsetzung. Für echten Fett-/Kursiv-Druck muss die passende Schriftart (Font) gewählt werden (auch wenn das Property durchgestrichen dargestellt wird).
Fett/Kursiv über die Schriftart wählen.
Feldinhalte werden in JasperReports durch ein Java-Statement definiert. Für formatierte Kommazahlen:
new java.text.DecimalFormat("#,###,##0.00", java.text.DecimalFormatSymbols.getInstance($P{REPORT_LOCALE})).format($F{betrag})
Zahlenfelder innerhalb eines Textes lassen sich nicht automatisch formatieren. Für ein englisches Format hilft dieser Hack:
new java.text.DecimalFormat("#,##0.00").format($V{zwsumme}.doubleValue()).replace(",", "x").replace(".", ",").replace("x", ".")
Über Padding and Borders eines Textfeldes lässt sich je Seite eine Linie einblenden. Damit die Linie beim Wachsen der Spalte mitexpandiert, dürfen die Felder nicht auf fester Höhe stehen (siehe Stretch with overflow).
Wächst ein Feld über seine Breite hinaus, verschieben sich Nachbarfelder. Abhilfe:
Nach dem Hochladen liegen alle Felder in einer Linie.
Ein Frame ist ein Container für weitere Elemente (auch verschachtelt). Für einen Adressblock eignet sich das Band Titel (nur erste Seite); für Briefumschläge ausreichend Seitenabstand (ca. 50px) lassen.
Zwei Felder zu einer Adresszeile zusammenführen und leere Zeilen entfernen:
+ verketten (String-Konkatenation), bei fehlendem Wert null liefern.Leere Zeilen (z.B. strstrassezusatz) werden dann automatisch entfernt und die übrigen zusammengeschoben.
Adressblock: Text Field Expression.
Textfeld oder Bild verlinken – entweder per Kontextmenü (Hyperlink, Typ Reference) oder direkt im JRXML:
<textField hyperlinkType="Reference"> <reportElement mode="Transparent" x="137" y="14" width="133" height="14"/> <textElement> </textElement> <textFieldExpression class="java.lang.String">"www.nuclos.de"</textFieldExpression> <hyperlinkReferenceExpression>"http://www.nuclos.de"</hyperlinkReferenceExpression> </textField>
Mit Markup formatierst du einzelne Wörter/Absätze innerhalb eines Textfeldes, ohne ein neues Feld anzulegen. Property markup = styled setzen und <style>-Tags verwenden:
<style isBold='true' pdfFontName='Helvetica-Bold' >Das ist ein dicker Text </style><style isBold='true' pdfFontName='Helvetica-Bold' size='20'>20 Pixel groß </style><style isItalic='true' isUnderline='true' forecolor='green'> Grüner Text unterstzrichen und schief </style><style isBold='true' pdfFontName='Helvetica-Bold' size='12'>& hallo ich bin ein Sonderzeichen</style>
Sonderzeichen &
Markup scheitert, wenn der Text ein & enthält. Ersetze es vorab durch die Entity: Attribut.replaceAll("&", "&"). Andere Sonderzeichen ggf. per UTF-8-Sequenz ersetzen.
Ein <br/> im Text erzeugt einen Umbruch (Feld weiterhin markup = styled). Beispiel: Ergebnismenge in Oracle per LISTAGG() mit <br/> verketten:
SELECT listagg(T2x."STRBEZEICHNUNG",'<br/>')
within group (order by T2x."STRBEZEICHNUNG") "strtext"
FROM
Tabelle T1x
WHERE
(
T1x."Tabelle T1x" = Parameter
)) "strtext",
Dieses Property gibt den bereits von anderen Komponenten belegten Platz an (nicht die Höhe des aktuellen Elements) – ab dem ein neuer Seitenumbruch beginnt.