Peter: XML + Stylesheet = FOP --> über Xampp

Hallo zusammen!
Folgende Situation:
Ich verwende ApacheFOP um XML in PDF umzuwandeln. Das klappt ganz gut. Jetzt überlege ich mir einen Schritt weiter zu gehen und ApacheFOP irgendwie mit Xampp zu verbinden?

Wie könnte das denn aussehen? Meine Vosrtellung: Der User schickt die XML Datei an den Server und bekommt ein PDF Dokument zurück? Stylesheets habe ich schon gebaut!

Geht das überhaupt? Hat jemand ne Idee, wie und wo ich anfangen sollte?

Vielen Dank
MfG
Peter

  1. Hallo,

    Wie könnte das denn aussehen? Meine Vosrtellung: Der User schickt die XML Datei an den Server und bekommt ein PDF Dokument zurück? Stylesheets habe ich schon gebaut!

    Geht das überhaupt? Hat jemand ne Idee, wie und wo ich anfangen sollte?

    Einen Servlet (setzt einen Servlet-container, wie Resin, Tomcat etc. voraus!) schreiben an dem die XML-Datei aus dem Formular geschickt wird.
    Servlet bekommt die XML-Datei und startet die XML/XSLT-Transformation.
    In dem Servlet rufst du dann FOP auf (vorausgesetzt natürlich FOP ist oben am Server) und übergibts du das XML und XSLT. FOP generiert das PDF und der Servlet liefert es dann an das Browser.

    Grüße
    Thomas

    1. Hallo Thomas!!

      Endlich hat sich einer gemeldet, vielen Dank erstmal dafür! Kurz zum Verständniss:
      Wie kann denn so ein Servlet aussehen? Hast du zufällig ein Beispiel für mich? Muss das mit Javascript realisiert werden??

      Vielen Dank
      Peter

      1. Hallo,

        Endlich hat sich einer gemeldet, vielen Dank erstmal dafür! Kurz zum Verständniss:
        Wie kann denn so ein Servlet aussehen? Hast du zufällig ein Beispiel für mich? Muss das mit Javascript realisiert werden??

        Die Seiten von FOP kann ich dazu empfehlen:
        http://xmlgraphics.apache.org/fop/0.95/servlets.html

        Falls du kein Java (NICHT JavaScript!) und JSP kannst, solltest du für's erste eher andere Lösungen für den PDF-Druck zu finden als FOP.

        Grüße
        Thomas

        1. Hallo Thomas!!

          Verstehe ich dich richtig, dasss ich ausschließlich JAVA/JSP benutzen muss, um die ganze Geschichte so zu realisieren wie ich es oben beschrieben habe?!?

          Was ist mit CGI/Perl, würde es damit auch gehen??

          Sorry für die Fragen, aber ich arbeite mich gerade in das Thema erst ein :-)

          Thanks!

          1. Hallo,

            Verstehe ich dich richtig, dasss ich ausschließlich JAVA/JSP benutzen muss, um die ganze Geschichte so zu realisieren wie ich es oben beschrieben habe?!?

            Ja, wenn du FOP einsetzen willst. FOP ist ja selbst in Java geschrieben und bietet auch nur eine Java-API.

            Was ist mit CGI/Perl, würde es damit auch gehen??

            Nein.
            Bzw. es geht schon*, aber erfodert m.M.n. ziemliche verrenkungen. Das gleich gilt für PHP.

            *) http://www.perl.com/pub/a/2003/11/07/java.html

            Sorry für die Fragen, aber ich arbeite mich gerade in das Thema erst ein :-)

            Grundsätzliche Frage: wir reden hier über serverseitige Technologien, wenn du keine Möglichkeit hast am Server etwas zu installieren (eben einen "Application Server" wie Resin etc.), wird das ganze für dich eher theoretisch bleiben.

            Grüße
            Thomas

            1. Danke für die Erklärung, werde mich jetzt mit Java/JSP auseinandersetzen!

            2. Hallo Peter, Thomas,

              Was ist mit CGI/Perl, würde es damit auch gehen??
              Nein. Bzw. es geht schon*, aber erfodert m.M.n. ziemliche verrenkungen. Das gleich gilt für PHP.

              Vollständigkeitshalber sollte man vielleicht noch erwähnen, dass man aus einem CGI-Skript beliebiger Sprache durchaus FOP über die Kommandozeile aufrufen und die fertigen PDFs mittels temporären Dateien ausliefern könnte. Allerdings sollte man das eher nicht machen, wenn es auf schon ein bisschen Performance ankommt; schließlich wird dann für jeden XML2PDF-Request erst der Skriptinterpreter (im Falle von CGI) geladen, dann der Java-Interpreter, dann FOP, anstatt das alles greifbar und sofort nutzbar im Speicher zu halten. Dann wäre eine richtige Servlet-Lösung durchaus besser.

              Tim