![]() |
Kleine Klasse zum arbeiten mit OpenOffice
Zum automatiseren von OpenOffice Dokumenten. Nur die Basisfunktionen bisher aber das bearbeiten von Vorlagen geht damit wurnderbar.
Delphi-Quellcode:
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
unit OO_Handling;
// Eine kleine Klasse zum einfachsten Handling von OpenOffice Dokumenten // Sollte noch um viele Funktionen erweiterbar sein // hab mal erst nur die Wichtigsten eingebaut // Diese Funktionen funktionieren auch mit Word .dot Files, // Das ersetzen geht sogar mit OpenOffice schneller als mit Word selbst. interface uses Windows, SysUtils, comobj; type TOLE_OpenOffice = class(TObject) private // Da OpenOffice Pfadangaben im Unixstyle haben will werden Backslashes umgewandelt function ToOOPfad(Pfad:String):String; protected // Das OLE-Objekt, die Desktopinstanz und das Dokument selbst. Service, Desktop, Document : Variant; public // Erstellt ein OLE Objekt; function Connect: boolean; // Oeffnet eine neues Dokument function Open:boolean;OVERLOAD; // Laden eines forhandenen Dokuments function Open(datei:string):boolean;OVERLOAD; // Ein Bookmarkfeld ersetzen ( Nicht Case Sensitiv) function ErsetzeBookmark(name,inhalt:String):boolean; end; implementation function TOLE_OpenOffice.Connect:boolean; var rueckgabe : boolean; begin try Service := CreateOleObject('com.sun.star.ServiceManager'); Desktop := Service.createInstance('com.sun.star.frame.Desktop'); rueckgabe := true; except rueckgabe := false; end; result := rueckgabe; end; function TOLE_OpenOffice.Open:boolean; var rueckgabe : boolean; begin try Document := Desktop.LoadComponentFromURL( 'private:factory/swriter', '_blank', 0, VarArrayCreate([0, - 1], varVariant)); rueckgabe := true; except rueckgabe := false; end; result := rueckgabe; end; function TOLE_OpenOffice.Open(datei:string):boolean; var rueckgabe : boolean; begin datei := ToOOPfad(datei); try Document := Desktop.LoadComponentFromURL( datei, '_blank', 0, VarArrayCreate([0, - 1], varVariant)); rueckgabe := true; except rueckgabe := false; end; result := rueckgabe; end; function TOLE_OpenOffice.ToOOPfad(Pfad:String):String; var rueckgabe : string; i : integer; begin rueckgabe := 'file:///'; while (POS('\',pfad)>0) do begin i := POS('\',pfad); delete(pfad,i,1); Insert('/',pfad,i); end; rueckgabe := rueckgabe + pfad; result := rueckgabe; end; function TOLE_OpenOffice.ErsetzeBookmark(name,inhalt:String):boolean; var objtext, tc, bm, li : Variant; i : integer; rueckgabe : boolean; begin rueckgabe := false; try objText := Document.getText; tc := objText.createTextcursor; li := Document.Bookmarks.getElementNames; for i := VarArrayLowBound(li,1) to VarArrayHighBound(li,1) do begin if (uppercase(li[i]) = uppercase(name)) then begin bm := Document.Bookmarks.getbyName(li[i]); tc := Document.Text.createTextCursorByRange(bm.Anchor); tc.string := inhalt; rueckgabe := true; end; end; except rueckgabe := false; end; result := rueckgabe; end; end. |
Re: Kleine Klasse zum arbeiten mit OpenOffice
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz