Faktura Layout Einstellungen Grafiken

Übersicht

Diese Anleitung beschreibt das Hinzufügen einer Grafik zu Ihrer JRXML-Vorlage. Möchten Sie mehrere Grafiken einbinden, muss für jede weitere Grafik die Namensgebung und der entsprechende Variablenverweis angepasst werden.

Grafik(en) an einer im Web öffentlich zugänglichen Stelle zu hinterlegen und im Image-Element zu verlinken ist nicht möglich!

Eigene Grafiken in die JRXML-Vorlage einpflegen

Grafik erstellen

Erstellen oder wählen Sie die gewünschte Grafik aus und sorgen Sie dafür, dass diese in einem für Sie zugreifbaren Verzeichnis gespeichert liegt.

Grafik konvertieren

Im nächsten Schritt muss die Grafik in einen sogenannten Base64 String umgewandelt werden.

Laden Sie dazu die Grafik zB: unter

hoch, klicken Sie auf die Schaltfläche "Encode" und kopieren Sie das Ergebnis aus dem Textfeld unterhalb der Zeile "Encoded Output" in Ihre Zwischenablage.

Achtung: nur das codierte Bild selbst darf kopiert werden.

Beispiel:

Beginnt der Code zB: mit: "data:image/png;base64,iVBOR...", so kopieren Sie erst den Teil ab dem "," (Beistrich), also: "iVBOR...."

Variable anlegen

Nun öffnen Sie die Vorlage zur Bearbeitung:

1. Legen Sie im Report Inspector/Outline (Sidebar links) unter "Variables" eine neue Variable zB mit dem Namen "stream" an.

2. Legen Sie die folgenden Eigenschaften dieser Variable "stream" fest:

  • Name: stream
  • Value Class Name: java.lang.String
  • Calculation: Nothing
  • Reset type: Report
  • Reset group: [leer lassen]
  • Increment type: None
  • Increment group: [leer lassen]
  • Incrementer Factory Class: [leer lassen]
  • Variable Expression: Fügen Sie den Text aus Ihrer Zwischenablage ein - zu Beginn und am Ende muss ein doppeltes Hochkomma stehen
  • Initial Value Expression: [leer lassen]

 

Variable in Image verwenden

Variable verwenden

Nun fügen Sie über die Palette ein Element vom Typ "Image" ein.

Legen Sie für das neue Image folgende Eigenschaften im Bereich "Image properties" fest:

  • Image Expression:
    javax.imageio.ImageIO.read(new java.io.ByteArrayInputStream(java.util.Base64.getDecoder().decode( $V{IHR_VARIABLENNAME} )))
  • Expression Class: java.lang.String
  • Scale Image: Retain Shape
  • Using Cache: Aktiviert
  • Evaluation Time: Report

Image platzieren

Nun vergeben Sie für das Image-Element die gewünschte Größe, die es am Dokument haben soll und platzieren Sie es an die gewünschte Stelle im Dokument. Dafür kann es notwendig sein, die sogenannten Bands (Title, Page Header, Summary, Footer etc) zu vergrößern.

Bitte beachten Sie:

  • Möchten Sie den Briefkopf um eine Grafik erweitern, müsste das Image-Element sowohl im Title als auch im Page Header platziert werden. Der Bereich Title wird nur auf der ersten Seite eines Dokuments verwendet, der Page Header nur auf allen weiteren Seiten.

  • Möchten Sie zB ein Unterschrift-Bild am Ende des Dokuments verwenden, platzieren Sie die Grafik am besten unterhalb der Zeile "textAfter" und vergrößern dazu den umfassenden Frame.

Ihr Briefpapier als Hintergrund

Haben Sie bereits ein Briefpapier / Layout / Hintergrundgrafik, das Sie gerne auch weiterhin auf Ihren Rechnungen verwenden möchten, so ist das ebenfalls mit einer in einen Base64-String konvertierten Grafik-Datei möglich (nicht PDF).

Wir empfehlen, nur statische Inhalte wie Kopfzeile, Logo oder Fußzeile sowie etwaige Hintergrundgrafiken in dieser Grafik einzubetten - so wie das auch bei dem vorgedruckten Briefpapier üblicherweise der Fall ist. Dynamische Inhalte werden über die Felder/Parameter und Variablen befüllt.

Für eine optimale Auflösung im Ergebnis-PDF exportieren Sie eine PNG-Datei im A4-Format bei 200 dpi, diese Grafik-Datei codieren Sie wie oben beschrieben in einen Base64-String und fügen Sie in der vorbereiteten Variable "streamBackground" ein.

Es gibt dann einen eigenen Band "Background" (Elementliste links), wo diese Grafik nun in der gewünschten Größe platziert werden kann.

Damit Ihr Layout mit und ohne Option "Briefpapier" funktioniert, befüllen Sie die PrintWhenExpression mit dem Parameter "!$P{isCustomPaper}".

Soll Ihr Hintergrund A4-Format füllend erscheinen, beachten Sie bitte, dass keine pageMargins (bearbeitbar beim obersten Wurzel-Element) verwendet werden können, weil diese auch für den Background-Band gelten. Das bedeutet, dass unter Umständen sämtliche Felder/Elemente in ihrer Position (und eventuell auch Breite) korrigiert werden müssen.

Unser Layout-Beispiel mit Hintergrund

Wir haben einige Layout-Vorschläge vorbereitet, die Sie zur sofortigen Verwendung bzw. Weiterverarbeitung herunterladen können. Darunter auch eines mit einem Hintergrundbild "Layout mit großem Bild im Hintergrund (Wasserzeichen)" - zu finden unter dem Punkt "Layout-Vorschläge" 

Layout-Vorschlag mit Briefpapier als Hintergrund