Zum Inhalt springen

Java to PDF


Rubicon

Empfohlene Beiträge

Hi @ all,

muß für mein Abschlußprojekt folgende "Bastelarbeit" leisten:

Daten aus einer MySQL-Tabelle auslesen in ein (von mir zu programmierendes) Java-Programm importieren, dort berechnen und/oder auswerten und als Graphik in einem PDF-Dokument ausgeben.

Soweit ok, hätte ich bloß eine Ahnung wie die Transformation Java=>PDF zu lösen wäre!

Hat jemand von Euch eine Idee? Ich trage zur Zeit einen ganzen Lattenzaun vor meinem Kopf spazieren....

:( Gruß Nicola

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

ne Übersicht über PDF Reader/Writer für Java findest du hier:

http://www.geocities.com/marcoschmidt.geo/java-libraries-pdf.html

Da ich noch mit keiner Lösung gearbeitet habe (steht aber demnächst an), kann ich keine weiteren Erfahrungen liefern.

Ich würde mir aber mal FOP anschauen.

http://xml.apache.org/fop/index.html

Sieht aber nicht gerade trivial aus.

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, ich habe mir das mal näher angeschaut.

Also für FOP müssen die Daten im XML Format vorliegen.

Du musst also aus deinem ResultSet einen XML Tree aufbauen.

Dann kommt das schwierigste. Für die Ausgabeformatierung muss eine xsl Datei geschrieben werden.

Da hilft nur weitergehende Literatur.

Zum Schluss schickt man beides, XML und XSL durch den FOP Transformer.

Kleines Beispiel dazu.


// Driver mit PDF Option laden.

FileOutputStream outputstream = new FileOutputStream("out.pdf");

org.apache.fop.apps.Driver driver = new org.apache.fop.apps.Driver();

driver.setRenderer(org.apache.fop.apps.Driver.RENDER_PDF);

driver.setOutputStream(outputstream);


//XML Tree aufbauen

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

Document document = builder.newDocument();

Element root = document.createElement("glossary");

...

...   XML Daten weiter aufbereiten.

...


//XML und XSL durch den Transformer und den Driver jagen.

Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(new FileInputStream("glossary.xsl")));

transformer.transform(new DOMSource(document), new SAXResult(driver.getContentHandler()));

outputstream.close();

Das ist eigentlich der ganze Java Part.

Ich schreibe dabei in die Datei out.pdf

Du kannst natürlich auch das ganze als servlet Output mit dem entsprechenden MIME Typ für pdf zurückliefern.

Das schwierige an der Sache ist halt zu deinem XML Tree die passende XSL Datei zu schreiben. Bei FOP ist aber ein "kleines" Examle dabei und zwar im Ordner:

fop-0.20.4\docs\examples\markers

Viel Spass dabei und nicht entmutigen lassen. ;)

Gruß Jaraz

PS: Wenn jemand weiss, wo ich ein freies Ebook über XSL finde, wäre ich über einen Link dankbar.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn Framework, dann richtig! Nimm Cocoon, der kann nicht nur PDF, der kann auch XML, XLS, RTF, SVG, VRML und natrülich so exotische Formate wie Plaintext und HTML. Schau's dir einfach mal an unter http://xml.apache.org/cocoon/ Vielleicht ein Nachteil, es setzt auf Tomcat auf. http://jakarta.apache.org/tomcat/index.html Allerdings kann man die recht einfach aufsetzen und sind danach nur Blackbox zum ausführen der Servlets.

Gruß,

Florian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by Florian_K

Wenn Framework, dann richtig! Nimm Cocoon, der kann nicht nur PDF, der kann auch XML, XLS, RTF, SVG, VRML und natrülich so exotische Formate wie Plaintext und HTML.

Soweit ich weiss, nutzt Cocoon FOP als Renderengine für PDFs. ;)

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...