Delphi - Oldalszámozás, tartalomjegyzék készítése Word-ben

Office 5. rész

forráskód letöltése
Gyakran használt lehetőség a Word-ben az oldalszámozás és a tartalomjegyzék használata. Mostani cikkünkben azt nézzük meg, hogy hogyan tudjuk ezeket a lehetőségeket Delphi-ből alkalmazni. Nagyobb dokumentumokban történő eligazodás érdekében elengedhetetlen az oldalszámozás és a tartalomjegyzék használata. Nézzük meg, hogy hogyan lehet mindezt Delphi-ből beállítani.

Először is meg kell határoznunk, hogy melyik szakaszt szeretnénk oldalszámokkal ellátni. Ehhez a Sections osztályt hívjuk segítségül: itt három lehetőségünk is van egy adott szakasz kiválasztására.
var
  sec: OleVariant;
…
sect := WordApp.ActiveDocument.Sections.First;
sect := WordApp.ActiveDocument.Sections.Last;
sect := WordApp.ActiveDocument.Sections.Item(3);
Az első megoldással az aktív dokumentum első szakaszát, a másodikkal az utolsó szakaszát, és az Item(3)-al a dokumentumon belüli 3. szakaszt. Azt, hogy hány szakasz van, a WordApp.ActiveDocument.Sections.Count property-ből lehet lekérdezni.

Ha megvan a szakasz, akkor eldönthetjük, hogy a lap tetején (Header), vagy a lap alján (Footer) kívánjuk elhelyezni az oldalszámot (esetleg mindkét helyen).
sect.Headers.Item(wdHeaderFooterPrimary).PageNumbers.Add(PageNumberAlignment, FirstPage);
sect.Footers.Item(wdHeaderFooterPrimary).PageNumbers.Add(PageNumberAlignment, FirstPage);
PageNumberAlignment: WdPageNumberAlignment típusú konstans paraméter, amely meghatározza az oldalszám igazítását. Lehetséges értékei: wdAlignPageNumberCenter, wdAlignPageNumberInside, wdAlignPageNumberLeft, wdAlignPageNumberOutside, vagy wdAlignPageNumberRight.
FirstPage: logikai érték, ami azt határozza meg, hogy az első oldalon is legyen-e oldalszám.


Oldalszámunk már van, jöhet tehát a tartalomjegyzék. Ehhez az ActiveDocument.TablesOfContents osztály Add függvényét kell felhasználnunk.
WordApp.ActiveDocument.TablesOfContents.Add(Range, UseHeadingStyles, UpperHeadingLevel, LowerHeadingLevel, UseFields,
    TableID, RightAlignPageNumbers, IncludePageNumbers, AddedStyles, UseHyperlinks, HidePageNumbersInWeb);
Range: kijelölés, ahová a tartalomjegyzéket be kell szúrni.
UseHeadingStyles: fejléc stílusok használata a tartalomjegyzék létrehozásához. Alapértelmezett értéke true.
UpperHeadingLevel: a legmagasabb értékű fejléc stílus sorszáma. Alapértelmezett értéke 1 ("Címsor 1").
LowerHeadingLevel: a legalacsonyabb értékű fejléc stílus sorszáma. Alapértelmezett értéke 1 ("Címsor 3").
UseFields: TJ mezők használata a tartalomjegyzék létrehozásához.
TableID: a tábla 1 karakteres azonosítója.
RightAlignPageNumbers: True érték esetén az oldalszámok jobbra lesznek igazítva.
IncludePageNumbers: a tartalomjegyzékben megjelennek az oldalszámok is.
AddedStyles: a tartalomjegyzék stílusai egy sztringben, felsorolásszerűen (pl. "Címsor 1, Címsor 2, Címsor 3").
Ez a függvény az előzőtől mindössze két paraméterben tér el:
UseHyperlinks: True érték esetén a tartalomjegyzék elemei hivatkozásként is működnek. Web-re való publikáláshoz használható.
HidePageNumbersInWeb: True érték esetén elrejti az oldalszámokat a Web-re való publikáláskor.

A tartalomjegyzék formátumát is meghatározhatjuk a TablesOfContents.Format property használatával:
WordApp.ActiveDocument.TablesOfContents.Format := Format
A Format property értéke a következő konstansok egyike lehet: wdTOCClassic, wdTOCDistinctive, wdTOCFancy, wdTOCFormal, wdTOCModern, wdTOCSimple vagy wdTOCTemplate.


Office cikksorozat