sobota, 8 sierpnia 2009

Na lewo, na prawo.... hej w Open XML [PL]

"Na lewo, na prawo, w górę i w dół..." :-) - tym zabawowo(weselnym) akcentem zacznę tego posta, który ... dotyczyć będzie kolejnych zagadnień związanych z Open XML Format SDK.

A dlaczego? Gdyż chciałbym zająć się wyrównaniem tekstu: do lewej, do prawej, do środka, i wyjustowany.

Jak można więc ustawiać wyrównanie tekstu? W tym celu należy ustawić odpowiednie właściwości paragrafu dla stylu, który chcemy zmienić lub paragrafu w którym chcemy ustawić wyrównanie. Wykorzystujemy więc właściwość Justification klasy ParagraphProperties, której należy nadać wartość wchodzącą w skład elementu wyliczeniowego: JustificationValues Enumeration, o następujących elementach:

  • Center: Center (Equation)
  • CenterGroup: Centered as Group (Equations)
  • Left: Left Justification
  • Right: Right

Zakończmy więc teorię i przejdźmy do kodu, który będzie krótki i łatwy. Zakładając że na przykład chcemy wycentrować dany tekst (w paragrafie, bądź przy użyciu stylu) wystarczy wykonać następujący kod:

paragraph_or_style.Append( new ParagraphProperties(
    new Justification() { Val = JustificationValues.Center } ) );

Kod ten powoduje dodanie do dokumentu, napisanego w WordProcessingML, następującego kodu XML:

<w:jc w:val="center"/>

Tutaj ważna jest jeszcze jedna kwestia, a mianowicie odpowiednie formatowanie powinno być dodane do elementu paragrafu na początku i koniecznie przed dodaniem do niego tekstu, czyli np. oczekiwany efekt uzyskamy wykonując kod:

 Paragraph paragraph = new Paragraph();
 Run run_paragraph = new Run();
 // we want to put that text into the output document
 Text text_paragraph = new Text( "Hello World!" );
 //Append elements appropriately.
 run_paragraph.Append( text_paragraph );
 paragraph.Append( new ParagraphProperties(
    new Justification() { Val = JustificationValues.Center } ) );
 paragraph.Append( run_paragraph );

Natomiast tekst nie zostanie sformatowany, gdy do paragrafu najpierw został by dodany element Run, a dopiero później ParagraphProperties

2 komentarze:

  1. Dobry artykuł, czy wiesz może jak formatować nie zwykły tekst, a element altChunk?

    OdpowiedzUsuń
  2. Cześć, niestety, ale dawno się tym nie zajmowałem i nie wiem jak formatować altChunk.
    Spróbuj może wyklikać to ręcznie w Wordzie i następnie zmień rozszerzenie pliku na zip i rozpakuj go, wtedy może znajdziesz jak to robi Word i w ten sposób dowiesz się jakich tagów użyć. (o takiej metodzie pisałem w http://maciej-progtech.blogspot.com/2009/06/kierunek-w-gab-formatu-docx.html.
    Powodzenia!

    OdpowiedzUsuń

Posty powiązane / Related posts