Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Kommentar: Migrated to Confluence 5.3

 

Es existieren mehrere Möglichkeiten Barcods mit Jasperreports zu verwenden. In der Pallette stehen unter der Komponente Barcode zwei Bibliotheken zur Verfügung barcode4j und barbecue-1.5-beta1.

zur Verwendung im Designer reicht es

barbecue-1.5-beta1 herunterzuladen und im Classpath von iReport bekannt zu machen. Die Bibliothek benötigt eine Abhängigkeit jdom.jar.

Barcode4J kann derzeit für Nuclos nicht verwendet werden, da eine Abhängigkeit in dem Paket  Batik.jar fehlt. Diese müsste gefunden und mitgeliefert werden.

 

 

 

 

 

 

 

 



Im  1.Schritt wird aus der Palette die Barcodekomponente ausgewählt und auf das Arbeitsblatt gezogen. Daraufhin öffnet sich der Dialog zur Auswahl von 2. Barbecue - Barcode oder 3.Barcode4J. An dieser Stelle kann nur ein Barcode aus der Barbecue-Liste ausgewählt und mit Betätigung des Buttons "Use Barbecue" auf das Formular gebracht werden.

 

In den Eigenschaften des Barcode-Feldes wird der Wert oder die Zeichenfolge, die der Barcode repräsentieren soll, eingegeben. Es gibt Barcodes die Zeichenketten in beliebiger Länge repräsentieren und andere die nur eine bestimmte Anzahl Zeichen akzeptieren.











Barcode einbinden über das Image-Objekt

Die vorhergehende Methode ist die Einfachste zum Einbinden eines Barcodes in ein Formular. Sollten dennoch Anforderungen entstehen, wie z. Bsp.: die Schriftart und Größe des Textes unterhalb des Barcodes ändern zu wollen, kann der Barcode über das Image-Objekt eingebunden werden. Im Folgenden Beispiel wird davon ausgegangen, dass ein 13-stelliger Barcode übergeben wird, sowie die Schriftart und Größe des Textes unterhalb des Barcodes geändert werden soll. EANDreiZehn.jar

 Dafür wird ein Java-Library Project angelegt mit einer Klasse in der folgenden Struktur:

Codeblock
languagejava
titleEANDreiZehn
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.barcodeself;
import java.awt.Font;
import net.sourceforge.barbecue.Barcode;
import net.sourceforge.barbecue.BarcodeException;
import net.sourceforge.barbecue.BarcodeFactory;
import net.sourceforge.barbecue.BarcodeImageHandler;
import net.sourceforge.barbecue.output.OutputException;
/**
 *
 * @author rufus
 */
public class EAN13 {
    public static java.awt.Image createEANdreiZehn(String c) throws OutputException, BarcodeException{
       if(c.isEmpty() || c.equals("")|| c.length() != 13){
           c = "000000000000";
       }
       else{
           c = c.substring(0, 12);
       }
       Barcode b = BarcodeFactory.createEAN13(c);
       Font f = new Font("SanSerif", Font.BOLD, 12);
       b.setFont(f);
       return BarcodeImageHandler.getImage(b);
    }
}

Die EANDreiZehn.jar , sowie die barbecue-1.5-beta1 + jdom.jar werden dem Classpath der integrierten Jasperreports-3.5.3.jar, wie unter den nachfolgenden Überschriften beschrieben, zugänglich gemacht.

Im Formular-Designer wird das erwähnte Image-Element aus der Palette auf dem Arbeitsblatt platziert und die entsprechenden Eigenschafte wie im Bild links gesetzt.

      •                  Image Expression = org.barcodeself.EAN13.createEANdreiZehn("12-stellig")
      •                  Expression Class = java.awt.Image









Jasperreports - Classpath bekannt machen

Damit die neu erstellte Klasse Nuclos bekannt ist, muss ein entsprechender Parameter angelegt oder falls er schon existiert in seinen Werten erweitert werden.
Siehe hier: Nuclos Parameter für den Jasperreports - Classpath

Einen Ordner 'extensions/server' anlegen

Dazu zu muss im Vorfeld im Installationspfad von Nuclos ein Ordner "extensions" angelegt werden. In Abhängigkeit der darin enthaltenen Funktionalität enthält der Ordner seine eigene Struktur(Unterordner) client für clientseitig, server für serverseitig, common für beides.

Die barbecue-1.5-beta1.jar , sowie die abhängige jdom.jar werden nach ~/<Installationspfad-Nuclos>/extensions/server/ geschoben. Das Einbinden der Jasperreport-3.5.3.jar ist nicht notwendig, da dieses Archiv in Nuclos bereits verwendet wird.

 

Installer ausführen

Nachdem die Extensions-Struktur angelegt und alle Jar's den selben Key besitzen, muss auf die bestehende Installation ein Update ausgeführt werden, indem der Installer einfach noch einmal ausgeführt wird. Nach der Installation müssen sich die Jars im Ordner "webapp/WEB-INF/lib" befinden. Soll der Installer nicht gleich wieder ausgeführt werden, reicht das manuelle Einfügen der Jars in den zuletzt genannten Ordner und ein Server-Neustart aus.