2012-09-19 12 views
5

Mam dziwny problem z generowaniem pliku .docx z Open XML. Mam TableCell który ma Paragraph następnie Run następnie Text generowany tak:Otwarty odstęp dzielący XML

tblRow.Append(new TableCell(new Paragraph(GetPropertiesForStyle("TableDescription"), new Run(new Text(colName))))); 

Sposób GetPropertiesForStyle zwraca ParagraphProperties dla konkretnego ustępu i ustawia styl. To wszystko działa dobrze, jednak w pierwszym rzędzie wydaje się, że pierwsza komórka ma podwójne odstępy, a ostatnia komórka ma podwójne odstępy - wszystkie komórki w środku wyglądają doskonale.

enter image description here

Mój styl konfiguracja wygląda następująco:

new Style(
    new StyleName() { Val = "TableDescription" }, 
    new StyleParagraphProperties(
     new ParagraphBorders(
      new BottomBorder() { Val = BorderValues.None } 
     ), 
     new SpacingBetweenLines() { Before = "100", After = "100", Line = "200", LineRule = LineSpacingRuleValues.Exact }, 
     new TableCellVerticalAlignment() { Val = TableVerticalAlignmentValues.Center } 
    ) 
), 

Sprawdziłem wytworzonego XML przy użyciu narzędzia produktywności i to zastosowanie właściwości perfekcyjnie. Każdy TableCell ma następującą konfigurację (są tam dodatkowe właściwości marginesów i wypełnienie cieniowania, które pominięto dla zwięzłości).

<w:tc> 
    <w:p> 
     <w:pPr> 
      <w:pStyle w:val="TableDescription" /> 
     </w:pPr> 
     <w:r> 
      <w:t>Reporting Period</w:t> 
     </w:r> 
    </w:p> 
</w:tc> 

Jakieś pomysły, co się dzieje?

Odpowiedz

5

Udało nam się rozwiązać ten problem poprzez dodanie następujących do mojego stylu:

new ContextualSpacing() { Val = false } 

który mówi słowo odznacz Nie dodawaj przestrzeń między akapitami w tym samym stylu w opcji akapitów.