Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: DaHias am 04.05.10 - 12:46:24
-
Tach zusammen,
Ich steh aktuell vor einer großen Herausforderung: Ich soll einen Agenten schreiben der Mails in PDF konvertiert. Dabei soll das ganze über XSL-FO laufen.
Das Domino XML hab ich, das ist ja auch kein Problem und jetzt soll daraus eben über ein XSL Stylesheet eine FO Datei werden, welche man dann in PDF konvertieren.
Dazu hatte ich auch folgende Quellen gefunden:
- http://www.hort-net.de/EntwicklerCamp/index.html
- http://www.packtpub.com/article/converting-xml-to-pdf
- http://www.ehow.com/how_5904694_convert-xml-document-pdf.html
- http://xmlgraphics.apache.org/fop/0.94/embedding.html#basics
Ich stehe vor dem Problem, dass ich nicht weiß wie so ein XSL für ein einfaches Notes Dokument auszusehen hat. Kennt jemand ein gutes Beispiel dazu? Der härteste Brocken dabei dürfte wohl das RichTextFeld einer jeden Mail sein.
Aber ich komm leider nicht weiter...
Grüße,
Mathias
-
Hi vielleicht nutzen Dir die folgenden Links etwas?
http://www.tecchannel.de/index.cfm?pid=216&pk=401792&p=1
http://www.oio.de/m/xslt-workshop/xslt-workshop.pdf
http://xmlgraphics.apache.org/fop/0.93/servlets.html
http://wgaip.informatik.rwth-aachen.de/teaching/02/proseminar/prosem-xslt.pdf
http://media.wiley.com/product_data/excerpt/14/07645438/0764543814.pdf
http://www.onjava.com/pub/a/onjava/2002/10/16/fop.html
http://refcards.com/download/deepx/XSLT-1.0.pdf
http://refcards.com/download/deepx/XSL-1.0.pdf
http://refcards.com/download/deepx/XPath-1.0.pdf
http://refcards.com/download/
http://refcards.com/refcards/index.html
Grüße David
-
Ja das hab ich auch schon mal gemacht ;)
Das Problem beim RichText ist das man hier alles reinpacken kann, also auch Tabellen, Bilder, Aktionen usw.. Das krasseste sind weitergeleitete E-Mails und Notesdokumente.
Das bekommt man dann beim schreiben der XSLT mit, 100% wird man das nie schaffen. Eine natürliche Grenze sind z.B. berechnete Textwerte wo im DXL dann nur die Formel steht.
-
@David: Danke für die Links, bin gerade dabei die etwas zu überblicken
@Erik: Du hast das schonmal gemacht? Hast du Tipps für mich? Ich versuch es aktuell Schritt bei Schritt mit einer sehr einfachen Maske nur mit 3 Textfeldern.
Inzwischen erstellt er mir ja schonmal ne .pdf Datei, die ich ned öffnen kann ;)
Folgende Fehlermeldung:
(Position des Fehlers unbekannt)org.apache.fop.fo.ValidationException: Document is empty (something might be wrong with your XSLT stylesheet).
-
Das Ziel deiner Transformation ist ja die FO-Datei (XML), was hier entsteht muss passen. Schau dir die FO-Datei mal an, die ist bestimmt leer oder hat gravierende Fehler.
-
@Erik: Da hast du recht, die FO Datei ist leer. Ich hatte bis jetzt immer direkt gleich die PDF Konvertierung durchgeführt und dabei einen Fehler bekommen.
Jetzt lass ich mir nur die FO-Datei ausgeben und die ist leer. So... jetzt muss ich nur noch herausfinden wieso?????
Liegt wohl an der XSL Datei, weil ich nicht genau weiß wie diese auszusehen hat.
-
Ich habe noch das hier gefunden:
http://mmillerlacrosse.blogspot.com/search?q=fop
Leider ist die sample.nsf nicht mehr zum Donloaden zu finden :-(
Prinzipiell würd mich das Thema ja aber schon jucken.
Grüße David
-
Wieviel Mannjahre sind denn für das Projekt veranschlagt ;D
Die Anzahl der Permutationen ist einfach zu groß. Das wird sich wirtschaftlich nie rechnen.
Da kannst du besser auf eine Wiese vor deinem Büro gehen und anfangen zu graben.
Die Wahrscheinlichkeit, dass du auf eine Goldader stößt ist vermutlich höher, als jene, dass sich aus diesen Projektanforderungen ein sinnvolles Projekt ergibt.
Und das mein ich jetzt nicht als Witz. ;D
-
@David: Ah ok wieder einer der sich mal damit beschäftigt hat. Ich versuch noch ne Möglichkeit zu finden den zu kontaktieren ^^
@Pitiyankee: Dass es nicht einfach wird, damit hab ich gerechnet und auch schon die entsprechende Erfahrung machen müssen ;) Aber es geht! Beispiele gibt es ja genug bei denen es funktioniert:
z.B.
- http://pd4ml.com/lotus.htm
- http://www.jnotes.de/clients/jnotes/jnotes_webware.nsf/jnotes/Tools_RTFtoPDF.html
Oder gibt es noch eine andere elegante Lösung mit Java? Ich will also eine Notes Mail im PDF Format so originalgetreu wie möglich ablegen und da ich über Java ja nich direkt drucken kann kam mir nur dieses XSL-FO in den Kopf.
Grüße,
Mathias
-
Mathias,
das sind beides recht staatische Beispiele. In Notes Richtext können aber allemögliche Kombinationen von Tabellen, eingebetteten Objekten, etc. auftreten. Und es gibt sehr viele Elemente. Du müßtest für jedes DXL Element eine entsprechende Umsetzungsregel nach xsl-fo schreiben.
Einmal war ein Projekt, in dem es darum ging, Notes Emails in einem anderen, von nicht-Notes Anwendungen lesbaren Format umzuwandeln. Da hab ich die Domino-HTML Engine genutzt, d.h. per HTTPClient von jakarta auf die Mails als Webmails zugreifen und das html + ggbfls eingehängte Attachments speichern.
Wenn ich aus einer Anwendung pdf Dokumente erzeugen will, nehm ich iText.
-
Und kann man mit iText gut mit RichText umgehen? Bisher hab ich immer nur gelesen, dass iText genau wegen RichText-Feldern nicht geeignet ist für sowas?
-
Nee dafür ist iText nicht gemacht.
Die Frage ist ob das alles 100%ig stimmen muss - oder ob auch Fehler erlaubt sind, was ja nicht die Regel ist und somit hat Pitiyankee schon recht - es ist ein nicht zu realisierendes Projekt ;)
-
Das is eigentlich auch so ziemlich das Hauptproblem: Ziel ist es, dass die E-Mail genauso aussieht wie sie im Client auch aussieht. Das hat bei uns revisionstechnische Gründe... nervig ist aber leider so. Gut 100% wird man nie erreichen, aber ich versuche die "beste" Lösung zu finden.
Am "einfachsten" wäre ja doch der Druckertreiber denke ich mal? Dazu hatte ich ganz zu Anfang nur einen kurzen Test gemacht und festzustellen, dass Java nicht so einfach ein Dokument drucken kann. Oder sehe ich das falsch? Ich google mal danach bzw. vielleicht weiß ja jemand einen Weg. Einen PDF-Drucker hätten wir evtl. zur Verfügung.
-
Bist du der Entscheider? Wahrscheinlich nicht - sag deinem Chef wie der Stand ist, soll er doch entscheiden :)
Und es gibt ja auch professionelle Lösungen wie z.B. notes2pdf. Und muss es PDF sein? Könnte ja auch einfach nur XML sein, welches zum Betrachten wieder nach Notes importiert wird.
-
Naja ich sag mal so, ich stehe da vor dem Problem, dass mein Chef nicht wirklich viel Ahnung von dem Thema hat... um nicht zu sagen dass er dazu keinerlei Ahnung hat und es ihm auch egal ist, solang es am Ende funktioniert. Wenn ich ihm erklär "Das geht ned besser" sagt er schon ok ^^
Ja die professionellen Lösungen wären fein, kosten aber natürlich was und das ist was, das kann ich meinem Chef ned verklickern :p
Ich hatte mal EML ausprobiert - ganz nett, aber Hausstandard ist PDF. Soll ja bei uns als sone Art E-Mail Archivierung ausgebaut werden.
Muss mich hier zwischendrin mal bei allen Unterstützern bedanken! Echt immer wieder top der Support hier, Danke! :)
-
notes2pdf warnt in seiner Dokumentation vor "zu komplexen" RichtText Feld Inhalten. Das kann bei Mails immer vorkommen.
War auch mal an einem Projekt beteiligt, in dem wir pdf Druckertreiber verwendet haben. Weiss aber nicht mehr, wie wir das gesteuert haben. Geht bestimmt irgendwie. Das ist natürlich auch eine Lösung. Allerdings hast du spätestens dann Probleme, wenn es darum geht, mit eingebetteten Objekten (nicht Attachments, das läßt sich programmieren) umzugehen. Und dann attachen Leute ja alles mögliche in ihre Mails. Du brauchst mit einer Druckertreiberlösung die entsprechenden Programme installiert.
Aber dxl -> xslt -> xsl -> fo ist imnsho einfach zu viel Entwicklungsaufwand.
... und dein Chef ist schon dafür verantwortlich, bei solchen Fällen einen vernünftigen Kommunikationskanal mit seinen Untergebenen zu haben. Sonst macht er einen Fehler.
-
Das hat bei uns revisionstechnische Gründe.
Wo steht es, dass eine E-Mail genauso als PDF abgelegt werden muss, wie sie im Lotus Notes-Client angezeigt wird?
Dafür gibt es überhaupt keine rechtliche Grundlage. Unetr Revisionssicherheit versteht man mehr ein Konzept und nicht das Format/Aussehen einer Datei... aber das ist eine tiefgehende und meist philosophische Diskussion....
-
As I see you mentioned our product PD4ML among the Notes->PDF solutions. I would like to give you some more info about. Sorry for English.
PD4ML itself is a HTML-to-PDF converter. So for Notes to PDF conversion scenario it uses DXL representation of a LN document, transforms it to HTML using XSL stylesheet and converts the resulting HTML to PDF.
The solution is simple to deploy - there is no need in client-server configurations or bindings to native unsafe DLLs. All you need is just to copy a couple of compact PD4ML JAR files and XSL stylesheet to your Notes agent resources. By the already mentioned URL you may find an agent sample with step-by-step instructions: http://pd4ml.com/lotus.htm
A couple of days ago we published a standalone DXL->PDF converter tool which can help you to get the first impression how it works: http://pd4ml.com/command-line-dxl-to-pdf-converter.htm
There are still minor issues by conversion of MIME parts of lotus mails, but generic rich text LN documents (even with attachments) are converted good.
You may take some ideas from our XSL stylesheet (available for free download) also for your FO scenarios, but, I guess, you'll get the most out of it when it works with PD4ML, as we added a lot of Notes-specific features and optimizations to PD4ML's HTML renderer.
-
Thanks zxfr,
thats really interesting information.
How much time did it take you to write the xsl stylesheet to convert dxl to html?