HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Képek Word dokumentumban


Képek beszúrása és mentése

Példaprogram letöltése

6480 bájt

Ebben a példában annak járunk utána, hogy egy Word dokumentumba hogyan tudunk képeket beszúrni, illetve a dokumentumban lévő képeket hogyan tudjuk elmenteni, például egy .bmp fájlba.
Először nézzük az első esetet. Csatlakozunk a Word-höz, és létrehozunk egy új dokumentumot. Ezután egy OpenPictureDialog dialógus ablakban kijelölt fájlokat egymás után beszúrjuk ebbe a dokumentumba, végül pedig elmentjük a dokumentumot.
A feladatot megoldhatnánk Type Library segítségével is, de mivel ez verziófüggő, ezért mellőzzük azt. Az egyetlen különbség az lesz, hogy minden objektum OleVariant típusú lesz, és nem használunk konstansokat sem. Ebben az esetben egyébként erre nincs is szükség.
A csatlakozás a következőképpen történik:
  FWordApp:=CreateOleObject('Word.Application');
Ha ez megtörtént, akkor létrehozunk egy új dokumentumot. Ehhez a Documents objektum Add függvényét használjuk, amely egy Document objektumot ad vissza.
var
  doc: OleVariant;
...
    doc:=FWordApp.Documents.Add;
Ezután egy ciklusban végigmegyünk a kiválasztott fájlok listáján, és egyenként beszúrjuk őket a dokumentumba. A dokumentum képeit a Shapes objektumon keresztül érjük el. Ennek AddPicture függvényével tudunk új képet beszúrni, a függvény visszatérési értéke a beszúrt kép Shape típusú objektuma. A függvény paramétereként meg kell adni a kép fájl nevét. A beillesztés alapértelmezetten a szövegtől független pozícióba történik, amit paraméterekkel meg is adhatnánk. Ennél egyszerűbb módot választunk, a képet a szövegbe, az aktuális kurzorpozícióba szúrjuk be. Ehhez meghívjuk a ConvertToInlineShape függvényt.
var
  shape: OleVariant;
...
    for i:=0 to OpenPictureDialog1.Files.Count-1 do begin
      shape:=doc.Shapes.AddPicture(OpenPictureDialog1.Files[i], false, true);
      shape.ConvertToInlineShape;
    end;
Ezután már nincs más hátra, mint az elkészült dokumentumot elmenteni. Ehhez meghívjuk a Save függvényt, ami megjelenít egy fájl mentése dialógus ablakot, ahol megadhatjuk a fájl nevét. Ha nem szeretnénk dialógus ablakot, akkor a SaveAs függvényt használjuk, aminek paramétereként megadhatjuk a fájl nevét.

Most nézzük azt meg, hogy hogyan tudjuk egy már meglévő Word dokumentumban található képeket BMP fájlba menteni. Mint az előzőekben is már volt szó róla, a képeket a Shapes objektumon keresztül tudjuk elérni. Ez viszont csak a szövegtől független képek elérését teszi lehetővé, a szövegben lévő képeket az InlineShapes objektumon keresztül érjük el. Mindkét objektumnak van egy Item nevű függvénye, amely a megadott sorszámú kép objektumával tér vissza. Ez a Shapes objektum esetén Shape típusú, az InlineShapes objektum esetén pedig InlineShape. A képek számát mindkét objektumnál a Count property-ből olvashatjuk ki.
Két ciklus lesz tehát, az egyik a Shapes, a másik pedig az InlineShapes objektum elemein megy végig. A ciklusban először lekérdezzük a soron következő kép objektumát a shape változóba, majd meghívjuk a Select metódust, amivel az adott képet kijelöljük. Ezután meghívjuk az Application objektum (FWordApp) Selection objektumának CopyAsPicture metódusát, amivel képet a vágólapra másoljuk.
      while i<doc.Shapes.Count do begin
        shape:=doc.Shapes.Item(i+1);
        shape.Select;
        FWordApp.Selection.CopyAsPicture;
        ...
Ezután meghívjuk a SaveClipboardPicture belső eljárásunkat, ami a vágólapon lévő Windows MetaFile formátumú képet egy TMetaFile típusú objektumba másolja, majd elmenti BMP formátumban.
var
  mp: TMetaFile;
...
      mp.Assign(ClipBoard);
      mp.SaveToFile(dir+'\'+StringReplace(Format('%4d', [count]), ' ', '0', [rfReplaceAll])+'.bmp');
A képek neve „0001.bmp”, „0002.bmp”, stb. lesz.




Cikksorozat

#IDKategóriaCikk címeSorozat
1166DelphiOsztály hierarchia lekérdezése1. rész
1180DelphiOsztály hierarchia lekérdezése2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 525. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |