Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#1

OLE OpenOffice Textersetzung, OO unsichtbar machen

  Alt 27. Feb 2012, 16:40
Hallo #,

der folgende Code dient zum Ersetzen von Texten

Delphi-Quellcode:
procedure OpenOfficeReplace(const AFileURL: string; ASearch: string; const AReplace: string);
var
  StarOffice: Variant;
  StarDesktop: Variant;
  StarDocument: Variant;
  FileReplace: Variant;
  FileParams: Variant;
  FileProperty: Variant;

begin
  StarOffice := CreateOleObject('com.sun.star.ServiceManager');
  StarDesktop := StarOffice.CreateInstance('com.sun.star.frame.Desktop');

  FileParams := VarArrayCreate([0, 0], varVariant);
  FileProperty := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
  FileProperty.Name := 'Hidden';
  FileProperty.Value := False;
  FileParams[0] := FileProperty;

  StarDocument := StarDesktop.LoadComponentFromURL(AFileURL, '_blank', 0, FileParams);

  FileReplace := StarDocument.CreateReplaceDescriptor;
  FileReplace.SearchCaseSensitive := False;
  FileReplace.SetSearchString(ASearch);
  FileReplace.SetReplaceString(AReplace);

  StarDocument.ReplaceAll(FileReplace);

  ShowMessage('Replace has been finished');
StarDocument.Close(True);
  StarDesktop.Terminate;
  StarOffice := Unassigned;
end;
gefunden hier:
http://stackoverflow.com/questions/7...ffice-document

Bis zum ShowMessage sieht es gut aus.
Aber irgendwie wird nichts gespeichert.





Danke


Heiko
Heiko

Geändert von hoika (27. Feb 2012 um 17:02 Uhr)
  Mit Zitat antworten Zitat