Writer als DDE-Server nutzen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Frawi
Beiträge: 7
Registriert: Di, 27.10.2009 09:09

Writer als DDE-Server nutzen

Beitrag von Frawi »

Hallo,

ich pflege eine Software, die derzeit noch MS Word 97 nutzt, um automatisch Geschäftsbriefe u.a. zu erzeugen. Der Nutzer dieser Software möchte sich (verständlicherweise) die Lizenzgebühren für Word speichern und lieber auf OpenOffice umsteigen - aber natürlich weiter auf diese Weise seine Briefe erzeugen lassen.

Derzeit funktioniert das ganze so, dass das Programm eine DDE-Verbindung zu Word aufbaut (natürlich vorher Word startet, falls erforderlich) und dann Word nacheinander per DDE diverse Befehle ausführen lässt, indem es diese zusammen mit der erhaltenen Conversation ID über eine Schnittstelle "sendet". Hier ein paar Beispiele der verwendeten Befehle:
  • FileNewDefault - um ein neues Word-Dokument basierend auf normal.dot zu erzeugen
  • FileNew .Template = "xxx.dot" - um ein neues Word-Dok. basierend auf der Vorlage xxx.dot zu erzeugen
  • FileExit 1 - Um Word zu beenden und bei Bedarf den Speichern-Dialog anzuzeigen
  • Bold 1 bzw. Bold 0 - um Formatiereung fett ein- bzw. auszuschalten
  • EditGoTo .Destination = "textmarke" - um zu einer Textmarke zu springen und diese zu markieren
  • EditPaste - um einen String aus dem Clipboard einzufügen (und damit z.B. eine markierte Textmarke zu ersetzen)
usw. - insgesamt dürften ca. 25 Befehle auf diese Weise verwendet werden.

Das ganze soll nun mit möglichst geringem Aufwand umgebaut werden, so dass auf diese Weise in Zukunft Writer benutzt werden kann. Was mir bisher gelungen ist, ist das Aufbauen der Kommunikation (topic: system und system: soffice) - mit Bereitstellung der ConversationID. Ich denke, an der eigentlich verwendeten Schnittstelle sollte nichts geändert werden müssen - die funktioniert 1:1 für Word, Excel - aber auch für AutoCad... Insofern sollte über diese auch OpenOffice "ansprechbar sein".

Was gemacht werden muss, ist die Hinterlegung der OpenOffice-Befehle, die den jeweiligen Word-Befehlen entsprechen.

Nun meine Fragen:
1. kann OpenOffice (insbes. Writer) überhaupt auf diese Weise als DDE-Server verwendet werden? Ich würde mal ein Ja unterstellen, sonst wäre wohl der Aufbau der Conversation schon nicht möglich.
2. Wie kann man die Word-97-Befehle in Writer-Befehle "übersetzen"? D.h. gibt es irgendwo eine Liste der verfügbaren Befehle mit Beschreibung

Herzlichen Dank im Voraus für Eure Hilfe!

Viele Grüße!
Frank