C# - Szövegbevitel, szövegformázás Word-be

Word programozása 3. rész

forráskód letöltése
Ha saját alkalmazásunknak lenne az a feladata, hogy generáljon egy Word dokumentumot, akkor elkerülhetetlen feladat, hogy a beírt szövegen alapvető formázásokat végezzünk. Így például érdemes ismerni, hogy miként adható meg tetszőleges betűtípus (név, vastagság, szín, stb.) a szövegeinkhez, vagy miként tudjuk állítani az egyes bekezdésekre jellemző adatokat (sortáv, igazítás, stb.). A példából arra is fény derül, hogy miként adható meg tetszőleges típusú és számú tabulátor pozíció egy bekezdésen belül.
Ha már szöveget írunk a Word-be, akkor nyilvánvalóan szeretnénk azt meg is formázni. A Word-ben rengeteg formázási lehetőséget találunk, mi most ezek közül a bekezdés és a betű formázás néhány alapvető funkcióját valósítjuk meg.
A formázáshoz a Word.Selection property-n keresztül vezet az út. Ezen belül találunk egy Font nevű property-t, amely az aktuális betű típus elérésére, megváltoztatására szolgál.
  Word.Selection ws = wa.Selection;
  Word.Font wf = ws.Font;
E Font property-t használva, már könnyedén elvégezhető a szükséges formázási beállítás a betűtípusra vonatkozóan.
A betűtípus nevét a Name property-n keresztül adhatjuk meg.
  wf.Name = "Arial";
A Bold property-ben arról rendelkezhetünk, hogy vastag legyen-e a szöveg vagy sem.
  wf.Bold = Convert.ToInt32(false);
Ehhez hasonlóan az Italic property a dőlt szöveget írja elő.
  wf.Italic = Convert.ToInt32(true);
A betűméret a Size property-ben kap helyet.
  wf.Size = 20;
A szöveg színe a Color property-ben tárolandó. Itt a WdColor felsorolt típus elemei közül választhatjuk ki a megfelelő színt.
  wf.Color = Word.WdColor.wdColorBlack;
A szöveg aláhúzása igen sokféle lehet, nem csak egy egyszerű vonal. Ennek milyensége a WdUnderLine felsorolt típus elemei közül választható. Ennek az aláhúzásnak egyedi színe is lehet, melyet az UnderlineColor property tárol.
  wf.Underline = Word.WdUnderline.wdUnderlineDouble;
  wf.UnderlineColor = Word.WdColor.wdColorBlue;
A bekezdés formázásához a Selection.Paragraphs property-t kell használni.
  Word.Paragraphs wp = ws.Paragraphs;
Hogy bekezdésünk milyen irányba legyen igazítva, azt az Alignment property adja meg, melyet a WdParagraphAlignment felsorolt típus elemei közül választhatunk ki.
  wp.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
Arról is rendelkezhetünk, hogy mennyi hely legyen a bekezdés előtt, illetve azt követően a SpaceBefore és SpaceAfter property-ken keresztül.
  wp.SpaceBefore = 20;
  wp.SpaceAfter = 20;
E Paragraphs property-ben található egy TabStops nevű property is, mely az adott bekezdésben lévő tabulátor pozíciókat és azok típusát tárolja. Ezt felhasználva létrehozhatunk új pozíciókat. Ezt követően, ha a szöveg beírásakor használunk tab karaktert (\t), akkor az a megadott tab pozícióknak megfelelően jelenik meg.
Új pozíciót az Add függvénnyel hozhatunk létre, melynek első paraméterében a pozíciót kell megadnunk pontban mérve, másodikban az igazítást, míg végül a kitöltő mintát adhatjuk meg a szöveg és a tab pozíció között. Az első paraméternél használhatjuk a Word CentimetersToPoints függvényt, melynek segítségével centiméterben is megadhatjuk a szükséges értéket.
  object align = Word.WdTabAlignment.wdAlignTabRight;
  object lead = Word.WdTabLeader.wdTabLeaderDots;
  wp.TabStops.Add(wa.CentimetersToPoints(5), ref align, ref lead);
  ws.TypeText("Tab teszt 1\t500");

Word programozása cikksorozat