Create page break using OpenXml

31,154

Solution 1

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")));

Solution 2

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>
Share:
31,154
arek
Author by

arek

Developer

Updated on November 15, 2020

Comments

  • arek
    arek over 3 years

    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

  • arek
    arek almost 14 years
    I try this solution but I have problem if some data before my page break fill previous page. Word will add page break, then my code creates another page break and I have one empty page. :/ I'm not sure how to change this :/
  • kjhughes
    kjhughes over 7 years
    The part of this answer about w:br/@w:type="page" is fine, but the part about w:lastRenderedPageBreak is incorrect. w:lastRenderedPageBreak should only be inserted by processors that have determined where a rendered page break did occur; it does not specify where a page break should occur.