Crear salto de página usando OpenXML


Utilizo OpenXML para crear un documento de Word con texto simple y algunas tablas debajo de este texto. ¿Cómo puedo forzar que el párrafo con este texto se muestre siempre en una página nueva? Tal vez este párrafo debería ser algún encabezado, pero no estoy seguro de cómo hacer esto.

Gracias

Author: arek, 2010-05-08

2 answers

Puede crear un salto de página dentro de un elemento Run utilizando el elemento <w:br>. En OpenXML raw, se vería algo así como:

<w:p>
  <w:r>
    <w:br w:type="page" />
  </w:r>
</w:p>

Si está utilizando el SDK de OpenXML, puede usar

new Paragraph(
  new Run(
    new Break(){ Type = BreakValues.Page }));

EDITAR:

Si solo desea especificar que un párrafo es lo último en una página, puede probar la etiqueta <w:lastRenderedPageBreak />.

new Paragraph(
   new Run(
      new LastRenderedPageBreak(),
      new Text("Last text on the page")));
 39
Author: Adam Sheehan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-14 16:30:48

La propiedad PageBreakBefore logra esto. Insertará un salto de página antes de su párrafo si Word no insertó uno automáticamente.

if (myParagraph.ParagraphProperties== null) 
{ 
    myParagraph.ParagraphProperties = new ParagraphProperties();
}

myParagraph.ParagraphProperties.PageBreakBefore = new PageBreakBefore();

Creo que se ve algo como esto en Open XML:

  <w:p>
    <w:pPr>
      ...
      <w:pageBreakBefore/>   
      ...
    </w:pPr>
    ...    
  </w:p>
 10
Author: Collin K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-29 23:25:14