Servlet Zur Laufzeit generierte Datei zum Herunterladen anbieten

Bitte aktiviere JavaScript!
Hallo,

ich programmiere gerade mit Eclipse an einer GWT-Anwendung, die beim Klick eines Icons dem Nutzer eine PDF mit diversen Daten mittels iText-Library generieren und dem Anwender als Download anbieten soll.

Beim IText (iText®: what is it, what can you do with it?) handelt es sich um eine Library, deren Quellcode und Binaries in seperaten JAR-Dateien vorliegen. Bei der Erzeugung der PDF wird eine Datei mittels FileOutputStream() auf die Festplatte geschrieben.

Meine Anforderung ist, dass die Datei nicht mehr auf die Festplatte geschrieben wird, sondern in den RAM und sofort als Download angeboten wird.

Daher die zwei Fragen.

1. Was nutzt man statt der Klasse FileOutputStream zum transierten Erzeugen von Daten, die nur zur Laufzeit existieren.
2. Wie übergibt man dieses Objekt anschließend dem Anwender zum Download im Format PDF?

Zu Punkt 2 eine kleine Ergänzung. Da die Libraries von itext nicht clientseitig kompiliert werden sollen, soll die PDF serverseitig erstellt werden. Dazu möchte ich das RPC Konzept von GWT nutzen. In wie fern lässt sich das mit dem Punkt 2 vereinbaren und könnt ihr mir am besten Beispielcode liefern?
 
Hm also ich kenn weder itext noch GWT so direkt aber ich würde ein Servlet programmieren, welches die entsprechenden itext-Funktionen aufruft, und als Stream halt den Output-Stream des Servlet-Response-Objekts. Auf der Webseite wird halt dann der Link zu diesem Servlet angezeigt (mit den entsprechenden Parametern anhand dessen das Servlet genau erkennen kann, was es tun soll).

Sofern da noch weitere Daten aus der Webanwendung notwendig sind und man die nicht in die Servlet-URL integrieren will, kann man sie auch in der HTTP-Session speichern und auf diese vom Servlet aus zugreifen (request.getSession().getAttribute(...)).
 
Hi,

habe herausgefunden wie man ein Servlet programmiert, das beim Aufruf eine generierte PDF Datei zum Download anbietet. Aber für jedes Fenster, für das ich eine PDF haben möchte, ein eigenes Servlet zu erstellen ist mir doch zu viel Aufwand. Aber das ist nicht das eigentliche Problem. Man müsste noch eine Referenz auf die Fenster mitgeben, die man verarbeitet.

Habs nun so gelöst, dass über ein RPC Aufruf die PDF mit einem übergebenem String Array eine PDF verarbeitet und der Link zur PDF zum Client zurückgegeben wird und der Client die PDF in einem neuen Tab öffnet.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben