
A mellékelt példaprogram megnyitása előtt az MSWordConverter.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
Az OldDocument tulajdonságban adhatjuk meg a konvertálandó állomány, a NewDocument-ben pedig a célállomány nevét. Az állománynevek megadásánál az állományhoz vezető elérési utaknak is szerepelniük kell.
A SaveFormat tulajdonságban beállított érték határozza meg a létrejövő célállomány formátumát. Az itt megadható értékek a következők:
TSaveFormat = (Document, DOSText, HTML, RTF, Template, UnicodeText);
A konvertáláshoz az Execute metódust kell meghívni.
Komponensünket a TComponent osztályból származtatjuk.
A használható formátumok kiválasztásához létre kell hoznunk egy új típust, a TSaveFormat-ot. Az állománynevek és a mentés formátum megadására szolgáló tulajdonságokkal a létrehozásukon kívül semmilyen különösebb teendők nincs. A komponens működésének kulcsa az Execute metódus.
procedure TMSWordConverter.Execute;
var
WordApp: OleVariant;
sf: Integer;
A konvertálást úgy hajtjuk végre, hogy a háttérben megnyitjuk a Microsoft Word programot. Betöltjük a forrásállományt, majd elmentjük a NewDocument-ben megadott néven, a SaveFormat property-ben megadott formátumban.
A Word megnyitásához a WordApp, OleVariant típusú objektumot használjuk. Az OleVariant típus használatához a uses listát bővítenünk kell a COMOBJ unit nevével.
Az OldDocument property-ben megadott dokumentumot megnyitjuk a háttérben, a szokásos módon.
WordApp:=CreateOleObject('Word.Application');
WordApp.Documents.Open(FOldDocument);
A dokumentum megnyitásakor szerencsénk van, mert a Word automatikusan felismeri a megadott állomány formátumát.
Ha az állomány betöltődött, akkor a SaveAs metódus meghívásával menthetjük el, más néven és formátumban.
WordApp.ActiveDocument.SaveAs(FNewDocument,sf);
A mentésnél már nekünk kell megadnunk a létrejövő állomány formátumát. A használható formátumok számára létrehoztuk a megfelelő konstansokat. A SaveFormat property-ben beállított értéknek megfelelő konstans tartalmát kell az sf változóban elhelyeznünk. Erre egy Case elágazás tökéletesen alkalmas.
case FSaveFormat of
Document: sf:=wdFormatDocument;
DOSText: sf:=wdFormatText;
HTML: sf:=wdFormatHTML;
RTF: sf:=wdFormatRTF;
Template: sf:=wdFormatTemplate;
UnicodeText: sf:=wdFormatUnicodeText;
end;
Miután létrejött az új állomány, nincs más dolgunk, mint bezárni a Word programot.
WordApp.ActiveDocument.Close;
WordApp.Quit;
A konvertálás folyamata teljesen a háttérben zajlik, a felhasználó számára nem látható módon.