Compiere ist eine quelloffene Warenwirtschaftssoftware (ERP) für kleine und mittlere Unternehmen. Zum Betrieb sind normalerweise zwei kostenpflichtige Programmpakete notwendig:
Das Compiere Libero-Projekt bietet die Möglichkeit, Oracle durch die quelloffene Alternative PostgreSQL zu ersetzen. Für jPDF gab es bisher keine solche Alternative.
Durch die Kombination der quelloffenen Pakete iText (PDF-Erzeugung) und JPedal (PDF-Ansicht) sowie den freien Icons des Tango Projects war es uns möglich einen Ersatz für jPDF zu entwickeln. Dieser erlaubt das Erstellen und das Ansehen von PDF-Dateien, die von Compiere zur Archivierung von Dokumenten verwendet werden. Ein geöffnetes Dokument kann gedruckt und sogar gespeichert werden. Damit ist es nun möglich, eine voll funktionsfähige Compiere-Installation aus freien Programmpaketen zu erstellen.
Zur Installation ist lediglich die Datei freepdf.jar notwendig, die alle notwendigen Klassen sowie ein gepatchtes iText und JPedal enthält. Sie ist mehr als doppelt so groß, wie die original jPDF-Datei, was aber auch darauf zurückzuführen ist, dass zwei PDF-Programmpakete und eingebunden und auch alle Schriften doppelt vorhanden sind. Die Schriften ließen sich zwar zusammenführen, jedoch wollten wir möglichst wenig Änderungen an den Originaldateien machen. Ganz ohne ging es jedoch nicht, denn iText unterstützt in der aktuellen Version keine Farbattribute für Zeichenketten, was von Compiere verwendet wird. Der Patch fügt diese Funktionalität hinzu.
Die Datei freepdf.jar enthält alles Notwendige und wird in das 'lib'-Verzeichnis von Compiere kopiert. Die Client-Installation von Compiere hält alle notwendigen Klassen in einer einzigen Jar-Datei, die zudem digital signiert ist. Aus diesem Grund ist es nicht so einfach, die Klassen direkt in dieser Datei zu ersetzen. Auch steht diese Datei im Klassenpfad vor dem System-CLASSPATH, so dass es nicht ausreicht, die neuen Klassen dort anzugeben. Man muss deshalb die freepdf.jar-Datei im Compiere-Startskript vor der 'CompiereCLib.jar' eintragen. Hierzu ist das Setzen des CLASSPATHs wie folgt zu ändern:
--- RUN_Compiere2.sh.orig 2005-10-29 00:51:52.000000000 +0200 +++ RUN_Compiere2.sh 2005-11-27 10:58:42.561761226 +0100 @@ -19,9 +19,9 @@ ## Check Compiere Home if [ $COMPIERE_HOME ]; then - CLASSPATH=$COMPIERE_HOME/lib/Compiere.jar:$COMPIERE_HOME/lib/CompiereCLib.jar:$CLASSPATH + CLASSPATH=$COMPIERE_HOME/lib/freepdf.jar:$COMPIERE_HOME/lib/Compiere.jar:$COMPIERE_HOME/lib/CompiereCLib.jar:$CLASSPATH else - CLASSPATH=lib/Compiere.jar:lib/CompiereCLib.jar:$CLASSPATH + CLASSPATH=lib/freepdf.jar:lib/Compiere.jar:lib/CompiereCLib.jar:$CLASSPATH echo COMPIERE_HOME is not set echo You may not be able to start Compiere echo Set COMPIERE_HOME to the directory of Compiere2.
--- RUN_Compiere2.bat.orig 2005-10-29 00:51:52.000000000 +0200 +++ RUN_Compiere2.bat 2005-11-27 10:59:31.993268344 +0100 @@ -22,7 +22,7 @@ :CHECK_COMPIERE @if not "%COMPIERE_HOME%" == "" goto COMPIERE_HOME_OK -Set CLASSPATH=lib\Compiere.jar;lib\CompiereCLib.jar;%CLASSPATH% +Set CLASSPATH=lib\freepdf.jar;lib\Compiere.jar;lib\CompiereCLib.jar;%CLASSPATH% set COMPIERE_HOME=%~dp0.. @Echo COMPIERE_HOME is not set. @Echo You may not be able to start Compiere @@ -31,7 +31,7 @@ @Echo cscript WinEnv.js C:\Compiere2 C:\j2sdk1.4.2_08 @goto MULTI_INSTALL :COMPIERE_HOME_OK -@Set CLASSPATH=%COMPIERE_HOME%\lib\Compiere.jar;%COMPIERE_HOME%\lib\CompiereCLib.jar;%CLASSPATH% +@Set CLASSPATH=%COMPIERE_HOME%\lib\freepdf.jar;%COMPIERE_HOME%\lib\Compiere.jar;%COMPIERE_HOME%\lib\CompiereCLib.jar;%CLASSPATH% :MULTI_INSTALL @REM To switch between multiple installs, copy the created Compiere.properties file
Ein '+' bedeutet hierbei, dass die entsprechende Zeile eingefügt und ein '-' dass sie entfernt werden muss.
iKu Systemhaus AG
Kurt Huwig
Am Römerkastell 4
66121 Saarbrücken