Create page break using OpenXml

大兔子大兔子 提交于 2019-12-18 03:52:06

问题


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


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



回答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>


来源:https://stackoverflow.com/questions/2795315/create-page-break-using-openxml

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!