.pdf aus laufendem Programm generieren

Hallo zusammen,

ich möchte aus einem laufenden Java-Programm heraus ein PDF generieren mit Daten aus einer MySql-DB. Leider weiß ich nicht genau wie ich das anstellen soll. Zwar gibt es im Internet ein paar Programme die das bewerkstelligen, allerdings generieren die immer nur ein fertiges PDF aus den im Moment vorhandenen Daten. Wenn neue Daten dazukommen werden diese nicht mehr berücksichtigt (eigentlich klar, da ein PDF-Dokument ja nicht auf Daten aus einer MySQL-DB zurückgreifen kann).

Kennt jemand ein Programm (oder eine Möglichkeit) Daten variabel in PDF-Dokument darzustellen?

Gruss und Danke,

Thomas

Hi.

PDF ist eine rein statische Sache, solange du nicht die Enterprise-Super-PDF-Server-Lösung (ok ich weis nicht genau wie sie heisst) nimmst. Das ganze ist kein billiger Spaß.

Ich würde an deiner Stelle das Dokument on the fly generieren - Dh. sobald ein User das Dokument haben will, bekommt er halt die Daten zu genau diesem Zeitpunkt.

Variable Datendarstellung, die sich selber aktualisiert, wenn sich der Status in der DB ändert, wirst du mit einem Dokument, dass sich der User auf die Festplatte speichern kann, eher schwierig hinbekommen.

mfG,

J.P.Jarolim

Hi Thomas,

setz doch den „Formatting Objects Processor“ (FOP) von Apache ein, um PDFs im Moment der Anforderung zu erzeugen. Dazu kannst Du z.B. im Hauptspeicher einen XSL:FO-DOM-Baum zusammenbauen, den Du dann an FOP übergibst. FOP produziert daraus einen Byte-Stream, den Du - mit den passenden HTML-Header-Elementen versehen - an den Browser zurückschickst. Ich habe an einer solchen Anwendung mitgearbeitet und es funktioniert recht gut, wenn auch etwas ressourcenfressend.

Den FOP findest Du unter http://xml.apache.org/fop

Vorteil: Kostet nix.
Nachteil: Du musst Dich intensiv mit XSL und FOP auseinandersetzen und viel Dokumentation durchlesen.

MfG, Jan-Peter