2010-05-08 56 views
24

Uso OpenXml para crear documentos de Word con texto simple y algunas tablas debajo de este texto. ¿Cómo puedo forzar a Párrafo con este texto para que se muestre siempre en la página nueva? Tal vez este párrafo debería ser un encabezado, pero no estoy seguro de cómo hacer esto.Crear salto de página usando OpenXml

Gracias

Respuesta

35

Se puede crear un salto de página dentro de un elemento de ejecución mediante el elemento <w:br>. En OpenXML en bruto, que se vería algo como:

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

Si está utilizando el SDK OpenXml, puede utilizar

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

EDIT:

Si lo que desea es especificar que una el 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"))); 
+0

de que este intento solución pero no tengo problema si algunos datos antes de mi salto de página llenan la página anterior. Word agregará salto de página, luego mi código crea otro salto de página y tengo una página vacía. :/No estoy seguro de cómo cambiar esto:/ – arek

+1

La parte de esta respuesta sobre 'w: br/@ w: tipo =" página "' está bien, pero la parte sobre 'w: lastRenderedPageBreak' es incorrecta. 'w: lastRenderedPageBreak' solo debe ser insertado por procesadores que hayan determinado dónde ocurrió *** un salto de página prestado ***; no especifica dónde debe ocurrir un salto de página ***. – kjhughes

10

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