Ob osCommerce, xt:Commerce oder OXID-Shop, fast überall besteht die Nachfrage nach dynamischen erstellen Rechnungen mittels FPDF oder einer anderen PHP-PDF-Klasse. Vor einiger Zeit hatte ich mir dazu mal Gedanken gemacht und 2 verschiedene PHP-Klassen veröffentlicht. Nun ist eine 3 Version entstanden, die nach völlig neuen Prinzip arbeitet. Natürlich muss auch erwähnt, dass es keine Wunder-Lösung über alle Shop- oder sonstige Rechnungs-Systeme gibt. Jede Lösung muss an den jeweiligen Shop oder sonstiges angepasst werden. Die neue Lösung, die hier mal vorstellen möchte, läß mehr Spielraum in der Gestaltung zu. Und diesmal gibt es eine INI-Datei, wo alle wichtigen Parameter eingestellt werden können. Im Anschluss eine kurze Erklärung und alles als Download.
[sender]
adress_head = "MediaCix KG - Herr MediaCix - Zum Cixblogwald 99 - 99999 Berlin"
side_head = "MediaCix KG Berlin"
Über die Section [lang] können Einstellungen zur Sprache gemacht werden. Soll z.B. eine andere Sprache benutzt werden, dann könnte z.B. eine andere INI-Datei einfach geladen werden.
Die Section [layout] ist für verschiedene Layout-Einstellungen gedacht. Wird z.B. ein Hintergrundbild benutzt, dann kann dies hier mit Angabe der DPI-Zahl eingebunden werden. Die Werte show_sender, show_first_page und show_pos_num sind Sonderfunktionen.
show_sender:
Rechnungen werden meist gleich mit kompletten Briefkopf, Logo, Absender ausgegeben. Mit dieser Funktion kann die Rechnung auch als Blanko-Blatt erstellt werden. Steht show_sender auf 0 werden alle Angaben vom Absender inkl. Hintergrundbild unterdrückt.
show_first_page:
Hin und wieder möchte man ein Deckblatt und die eigentliche Rechnung auf der zweiten Seite haben. Steht show_first_page auf 1 wird die eigentliche Rechnungsliste ab der 2 Seite begonnen.
show_pos_num:
Alle Artikel können zusätzlich mit einer Nummerierung versehen werden. Steht show_pos_num auf 1 werden alle Einträge automatisch durchnummeriert.
Die Section [color] ist einfach noch Beta und setzt die verschiedenen Farben für Schriften, Linien etc.. Verschiedene Angaben vom Absender können über die Section [sender] eingestellt werden. Im Download-Beispiel wird diese Section besser sichtbar. Mit der neuen Version 3 können dann z.B. eine Rechnung so aussehen:
Datei: FPDF-Rechnung-v3.pdf
Größe: ca. 0.064 MByte
Upload: 2010-01-27 21:30:08
Downloads: 77
Neu ist auch das Handling der Daten. Als Beispiel liegt im Download noch eine Datei project.inc mit bei. Diese ist nur dazu gedacht um irgendwelche Test-Daten zu haben. Allerdings gibt es hier eine Besonderheit:
Bisher waren die Spalten und deren Bezeichnung vordefiniert. Jetzt können die einzelnen Spalten-Breiten (in mm) frei eingestellt werden. Hin und wieder ist es hilfreich, wenn z.B. ein ganz anderer Hintergrund benutzt wird. Mittels dem 3. Parameter kann die Ausrichtung der Spalte eingestellt werden. Werden nun die Artikel-Daten eingelesen, dann werden diese automatisch nach diesen Vorgaben positioniert:
Die Angaben der Nettosumme, MwSt und Gesamtsumme werden autoamtisch positioniert. Diese stehen immer in der letzten Spalte. Die Inhalte in den Spalten können auch länger wie die Spalte sein. Es erfolgt automatisch ein Umbruch und Layout-Anpassung, wenn ein Inhalt in einer Spalte mehr Platz benötigt. Diese automatische Positionierung ist noch im Test-Betrieb. Ob das ganze auch perfekt funktioniert wird die Praxis zeigen. Bewusst wurde alles so programmiert, dass auch noch PHP4 Version damit klar kommen.
Zum Schluss nun das komplette Beispiel inkl. PHP-Klasse:
Datei: FPDF_Rechnung_v3.zip
Größe: ca. 0.161 MByte
Upload: 2010-01-27 21:30:15
Downloads: 121
Wie immer Gilt:
Die Klasse kann frei benutzt werden, jedoch kostenlosen Support gibt es nicht. Würde mich aber gerne über Feedback freuen.