2009-11-10 10 views
8

Estoy usando C# para crear un FlowDocument y llenarlo con datos dentro de una tabla.FlowDocument Forzar un PageBreak (BreakPageBefore)

Ejemplo:

FlowDocument flowDoc = new FlowDocument(); 
Table table1 = new Table(); 
flowDoc.Blocks.Add(table1); 

table1.RowGroups.Add(new TableRowGroup()); 
table1.RowGroups[0].Rows.Add(new TableRow()); 
TableRow currentRow = table1.RowGroups[0].Rows[0]; 
table1.RowGroups[0].Rows.Add(new TableRow()); 

currentRow = table1.RowGroups[0].Rows[0]; 
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("Report")))); 

Quiero ser capaz de forzar un salto de página después de cada 'sección' de los datos. He encontrado el BreakPageBefore pero no puedo encontrar la manera de forzar un salto de página.

¡Cualquier ejemplo sería fantástico!

Gracias.

Respuesta

14

si entiendo derecho que desea hacer esto:

Section section = new Section(); 
section.BreakPageBefore = true; 
section.Blocks.Add(table1); 
flowDoc.Blocks.Add(section); 

Si usted quiere romper dentro de una tabla le sugiero que sería mejor hacer una nueva tabla.

+0

No estoy seguro de que esto es lo que estaba buscando. Yo quería un simple tipo de cosas en PageBreak. TableData .. .. TableData TableData ... ETC ... Si esto es lo que busco, me he perdido y que podría explicar por favor? Muchas gracias. –

+0

suena como usted desea iniciar una nueva tabla para cada sección como sugiere Martin, por ejemplo, ... .... –

+0

Creo que como Ray describió en XAML, es la mejor manera. Cada tipo de bloque tiene la propiedad PageBreakBefore que podría usar para decirle al FlowDocument que debería romperse. Creo que no hay otra manera. Hasta el momento no he encontrado algo así como un tipo de PageRreak que podría hacer un salto de página explícitamente. – martin

Cuestiones relacionadas