Einzelnen Beitrag anzeigen

Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#1

insertDocumentFromURL und OpenOffce

  Alt 9. Aug 2005, 13:53
Hi,

seit Wochen versuche ich eine RTF in ein OpenOffice einzufügen.
Das heißt in einem bestehenden Dokument eine RTF Datei an eine bestimmte Stelle,
per "StarBasic" einzufügen. Alle Lösungen die gefunden habe, sind in anderen Programmiersprachen verfasst.
Irgendwie komme ich über die letzte Hürde nicht hinweg.

Ich erzeuge den Textcursor:

tc := Document.Text.createTextCursorByRange(bm.Anchor); Dann einen Poperty:

Delphi-Quellcode:
VariantArr := VarArrayCreate([0, 0], varVariant);
VariantArr[0] := MakePropertyValue('FilterName','Rich Text Format');
Dann sollte das Dokument geladen werden:

tc.InsertDocumentFromUrl(rtfFile,VariantArr); Geht aber nicht !!! Da passiert gar nix.
Das Dokument liegt aber wirklich an der Stelle !
Ich hab einen C-Source gefunden da werden einfach statt VariantArr 'ne Klammer übergeben: "()" (für leer )

Code:
cursor.insertDocumentFromURL(fileUrl, ())
Ein Delphi-Source-Schnipsel den ich nicht verstehe lößt es folgendermaßen:

Delphi-Quellcode:
theTextCurser := Document.Text.CreateTextCursor;
theTextCurser.insertDocumentFromURL(ooFileName, VarArrayCreate([0, - 1], varVariant) );
Ich weiß aber nicht was hinter: VarArrayCreate([0, - 1], varVariant) steht.
Aber ich habs probiert und hat auch nix genützt.

Ein Makro meint das es folgendermaßen geht:
Code:
Dim Dummy as Object
oCursor.InsertDocumentFromUrl("agb.sxw",Dummy)
Ich dachte ein leeres Variant würde auch funktionieren, tut es aber auch nicht.
Wäre ja toll, dann müsste man das Format gar nicht erst angeben und Open Office könnte einfach "alles" (was es kennt) laden/importieren.

Weiß jemand Abhilfe ? Oder meinen "Hirn-Bug".

euer Andreas

PS: die Funktion MakePropertyValue:

Delphi-Quellcode:
function TOLE_OpenOffice.MakePropertyValue(PropName, PropValue:string):variant;
var Struct: variant;
begin
    Struct := Service.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
    Struct.Name := PropName;
    Struct.Value := PropValue;
    Result := Struct;
end;
PPS: auch wenn OpenOffice schwieriger anzucoden ist, ich steig um
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat