2012-09-19 16 views
5

Ho uno strano problema nel generare un .docx con Open XML. Ho un TableCell che ha un Paragraph poi Run poi Text generato in questo modo:Open XML Paragrafo

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

Il metodo GetPropertiesForStyle restituisce il ParagraphProperties per il paragrafo specifico e imposta lo stile. Tutto funziona bene, tuttavia all'interno della riga della tabella la prima cella sembra avere una doppia spaziatura prima e l'ultima cella ha una doppia spaziatura dopo - tutte le celle nel mezzo sembrano perfettamente a posto.

enter image description here

La mia configurazione stile è simile al seguente:

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 } 
    ) 
), 

Ho controllato il codice XML prodotto utilizzando lo strumento di produttività e sta applicando le proprietà perfettamente bene. Ogni TableCell ha la seguente configurazione (ci sono alcune proprietà di margine extra e un riempimento dello shader che ho omesso per brevità).

<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> 

Tutte le idee che cosa sta succedendo?

risposta

5

riuscito a risolvere questo aggiungendo quanto segue al mio stile:

new ContextualSpacing() { Val = false } 

che racconta parola per deselezionare la Non aggiungere spazio tra paragrafi dello stesso stile nelle opzioni di paragrafo.