Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: TheHessian am 14.12.05 - 17:07:46
-
Hi!
Ich suche nach einer Möglichkeit ein RichText-Feld eines NotesDocuments via LotusScript in ein WordPerfect-Dokument zu übertragen, ohne dass dabei die Formtierungsinformationen (Schriftart, Fett, kursiv ...) verlohren gehen.
Szenario:
Ich erzeuge zunächst ein WP Object und erzeuge ein neues WP-Dokument.
' Create WordPerfect Object
Set wps = CreateObject("WordPerfect.PerfectScript")
wps.WPActivate
wps.AppMaximize
wps.TemplateSelect (strBuffer)
:
' In diesem WP springe ich an eine Marke und will dort den RichText einfügen
wps.PosPage( 1 )
wps.BookmarkBlock("[KasseAbsendeKennung]")
Set rtItem = docKP.GetFirstItem("KasseAbsendeKennung")
wps.type( rtItem.GetFormattedText(True, 0) ) ' Im Moment ohne Formatierung
:
Ich habe bis jetzt leider keine Lösung gefunden.
Vielleicht kennt sich ja hier jemand mit diesem Problem aus!?
Vielen Dank für Tipps!
Gruß
Marcus
-
NotesRichText ist ein proprietäres Format. Einige (!) Auszeichnungen kannst Du mit den ab R6 verfügbaren NotesRichText classes auslesen, aber bei weitem nicht alle.
Mit auf der NotesAPI aufsetzenden Erweiterungen wie Midas von Ben Langhinrichs oder RTLib von Normunds Kalnberzins kannst Du tiefer analysieren, bekommst aber auch noch alle Attribute.
Der einfachste Weg wäre - wenn machbar (FrontEnd !) - das NotesRTI ins Clipboard zu übernehmen und dann in das WordPerfect-Dokument plumpsen zu lassen.
Bernhard
-
Tja ... das mit dem FrontEnd ist halt die Sache ...
Ich habe zwar im Verareitungszeitpunkt ein UIDoc offen (allerdings auch nicht unbedingt im Editmode), aber das ist nicht das Dokument, in dem das Richtext Feld enthalten ist, dieses stammt aus einer zweiten Notes-Datenbank - einer Kundenparameter-DB.
-
Kann Deine WP-Version mit XML umgehen ? Über diesen Weg bestünde ja auch noch eine womöglich reale Chance.
Ebenso könntest Du das betreffende Dokument aus der anderen DB immer noch im FrontEnd kurz öffnen (EditMode ist aber zwingend für die Übernahme ins Clipboard).
Bernhard
-
WP kann seit Version 9.0 xml. Nur ist es verdammt viel Arbeit das Stylesheet zu erstellen.
Das könnte eigentlich zum gemeinsamen Hobby der Notes Community werden, solche Stylesheets zu erstellen. Nathan Freeman (von openNtf.org) hat sich mal diesbezüglich zu OpenOffice geäußert. Ich selbst zu MS-Word 2003-XML (auch auf openNTF.org).
Das ganze ist für einen einzelnen einfach zu viel Arbeit.
Solche Konvertierungsstylesheets wären - gerade angesichts der Überladenheit von NotesRichText- sinnvolle Notes-Komponenten, die von verschiedenen Anwendungen/Projekten genutzt werden könnten.
-
Hab mal die Lösung mit CopyAndPaste ausgetestet:
' Über die Zwischenablage soll der Text in das WP-Dokument gelangen
Set rtItem = docKP.GetFirstItem("KasseAbsendeKennung")
Set docTmp = db.CreateDocument()
docTmp.Form = "mskRT"
Set rtTmp = docTmp.CreateRichTextItem("tmp")
Call rtTmp.AppendText(" ")
Call rtTmp.AppendRTItem( rtItem )
Set uidocTmp = ws.EditDocument( 1, docTmp )
Call uidocTmp.SelectAll
Call uidocTmp.Copy
wps.PosPage( 1 )
wps.BookmarkBlock("[KasseAbsendeKennung]")
' wps.type( rtItem.GetFormattedText(True, 0) )
wps.Paste
Call uidocTmp.Close(True)
Set uidocTmp = Nothing
Set docTmp = Nothing
Im Lotus Debugger funktioniert das auch wunderbar. Der Text wird formatiert über die Zwischenablage ins WP-Dokument eingefügt.
Schalte ich den Debugger in LotusNotes ab, klappts nicht >:( Dann wird der Inhalt der ersten RT-Items nicht übernommen und es wird nur das Leerzeichen in RT-Item 2 kopiert und eingefügt ...
Hat jemand ne Idee, warum?
-
Problem gelöst:
Nach dem Erzeugen des docTmp und dem AppendRTITem noch ein Save bevor es in den Vordergrund kommt und dann im Anschluß das Doc wieder aus der DB gelöscht.
Fertig! Geht!