Question

I use OpenXml to create Word document with simple text and some tables under this text. How can I force Paragraph with this text to show always on new page? Maybe this paragraph should be some Header but I'm not sure how to do this.

Thanks

Was it helpful?

Solution

You can create a page break within a Run element using the <w:br> element. In raw OpenXML, it would look something like:

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

If you're using the OpenXml SDK, you can use

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

EDIT:

If you just want to specify that a paragraph is the last thing on a page, you can try the <w:lastRenderedPageBreak /> tag.

new Paragraph(
   new Run(
      new LastRenderedPageBreak(),
      new Text("Last text on the page")));

OTHER TIPS

The PageBreakBefore property accomplishes this. It will insert a page break before your paragraph if Word didn't insert one automatically.

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

myParagraph.ParagraphProperties.PageBreakBefore = new PageBreakBefore();

I believe it looks something like this in Open XML:

  <w:p>
    <w:pPr>
      ...
      <w:pageBreakBefore/>   
      ...
    </w:pPr>
    ...    
  </w:p>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top