Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: breiti am 06.01.05 - 10:00:17

Titel: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: breiti am 06.01.05 - 10:00:17
Hallo,

ich möchte mitHilfe von java auf Documents innerhalb von Lotus Domino zugreifen.

Das klappt auch alles, jedoch kriege ich immer nur den Text ... völlig ohne die Formatierung, wie ich sie in meinem Notes Client sehe.

mein Code sieht zur Zeit so aus :
"
notesExecute.connect(SERVER_NAME, DATABASE_NAME, USER, PWD);
Iterator infos = notesExecute.getDocumentIterator();
Document document = null;
int i = 0;
      while (infos.hasNext())
      {
        try
        {
          document = (Document) infos.next();
          RichTextItem body = (RichTextItem) document.getFirstItem("text");


...
"

Obwohl ich RichTextItems habe, bekomme ich nur Text ... völlig ohne Formatierung.

wer weiß, wie ich die Formatierung zusätzlich bekommen kann ???

Servus,

Breiti
Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: Thomator am 06.01.05 - 10:45:46
Hi Breiti,

wenn Du an das RTItem, in dem das Ganze angezeigt werden soll (vermutlich im Web?), mit appendRTItem das auszulesende RTFeld anhängst, sollten sowohl die Bilder als auch die Formatierung mit rüberkommen.

Thomas
Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: breiti am 06.01.05 - 10:50:28
Hi, eigentlich wollte ich es vorerst mal auf Platte abspeichern (z.B. als RTF- File).

kennst du eine Möglichkeit, wie ich dies tun könnte ???


Mit appendRTItem hänge ich doch nur 2 RTItems aneinander ... oder irre ich mich da ?
Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: Thomator am 06.01.05 - 11:37:51
Hi,
Also da ist mir nur die Möglichkeit bekannt, für ein Item oder RTItem die Eigenschaft saveToDisk zu setzen. Dann wird das Item meines Wissens beim Speichern des Dokuments auf Platte gespeichert.
Damit habe ich mich allerdings auch noch nicht beschäftigt...

Mit append wird natürlich nur ein Item an das andere angehangen.

Thomas
Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: breiti am 06.01.05 - 11:51:58
Hi, die Eigenschaft saveToDisk eines Items bewirkt leider nur, daß dieses Item beim Abspeichern des Dokumentes auch gespeichert wird - allerdings im Lotus - system.

Was ich möchte, ist jedoch die völlige Extraktion des Dokumentes auf meine Platte bzw. innerhalb meines Java-programmes zur weiteren Verarbeitung.
Es gibt da jeweils ein RichTextItem "text" welches auch den Text enthält, jedoch nur den Text d.h. völlig ohne Formatierungen.
Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: Marinero Atlántico am 06.01.05 - 11:58:08
NotesRichText Felder haben ein proprietäres Format. Das ist nicht rtf. Sondern etwas sehr spezielles, super-toll abwärtskompatibles (was zwar an sich gut, aber schlecht für die innere Konsistenz des Formats ist) Format mit Problemen bei Tabellen. 
Also musst du den Inhalt erstmal in rtf formatieren.
Hinweise magst du hier finden: http://www.nsftools.com/blog/blog-01-2004.htm. Eintrag 1. Januar.
Du kannst dir das auch als xml rausholen, was aber die Komplexität des Formats selbstverständlich auch nicht veringert.
Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: breiti am 06.01.05 - 12:04:16
Hmm, das mit dieser Datenbank hatte ich auch schon gefunden, das kann ich leider nicht benutzen, da ich meine Lösung in Java entwickeln muß.

Gibt es denn gar keine Möglichkeit sowas per Java zu machen ???
Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: Marinero Atlántico am 06.01.05 - 12:42:57
Gibt es denn gar keine Möglichkeit sowas per Java zu machen ???
Schwierig. Sehr schwierig.
Was heisst Java? Oder in welchem Client soll das denn dargestellt werden?

Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: breiti am 06.01.05 - 13:05:01
Naja, es gibt ja eine Lotus Domino API für Java mit Hilfe deren ich sämtliche innerhalb einer Datenbank befindliche Dokumente abfragen kann.  Den Text dieser Documents kann ich ebenfalls extrahieren.
Nur hat der Text dann keine Formatierung.

Ich  will also über Java (ganz normales J2SE) auf den formatietren Text der Documents zugreifen.
Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: Marinero Atlántico am 06.01.05 - 13:49:24
ohne jetzt ironisch klingen zu wollen, aber vielleicht haben du und ich unterschiedliche Vorstellungen von dem Begriff "formatierter Text".
Das ist kompliziert und Lotus benutzt wie gesagt ein proprietäres Format.
Komplizierter wird das ganze nochmal durch Attachments und OLE-Objekte, die da auch drin sind.
Java kann dieses Format nicht. Dh du musst die Information erstmal in was konvertieren was Java rendern kann, wobei "was Java rendern kann" wieder eine falsche Aussage ist.
Swt kann z.B. OLE Objekte einbinden. Swing kann das nicht. Swing kann teilweise html darstellen.
In was für einem Objekt (welche Klasse) von Swing? Awt? Swt? willst du das eigentlich darstellen?

Axel

Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: breiti am 06.01.05 - 14:03:14
Hmm, java müsste es ja nicht unbedingt rendern sondern nur als byte-stream auf die platte hauen können. Das rendern können ja dann andere programme übernehmen.
Titel: Re: Zugriff auf Formatierung von Documents in Lotus Domino durch Java ???
Beitrag von: Marinero Atlántico am 06.01.05 - 15:38:06
java.io.ObjectOutputstream.writeObject(yourRTObject);

Wird dir aber auch nicht weiterhelfen, fürchte ich.

Sinnvoller erscheint es mir das RichText nach xml auszugeben und dann das irgendwie versuchen zu rendern. RTFelder halte ich persönlich für ein echtes Problem.
Unsere hardcore Java Programmierer brauchten das als html und haben das durch die Notes Http-Engine gejagt und dann intercepted. Hab aber nur mit einem Ohr zugehört und würde es auch nicht sagen, wenn ich es wüßte (weil nicht von mir). Ich weiß nur, dass es auch damit dann eine Menge Probleme gab, die möglicherweise bis zu dem heutigen Tag noch auf eine Lösung warten.
Wenn du etwas gefunden hast, wäre ich sehr interessiert.