2010-05-08 65 views
24

我使用OpenXml创建带有简单文本和本文下某些表的Word文档。我怎样才能强制段落与此文本总是在新的页面上显示?也许这段应该是一些标题,但我不知道如何做到这一点。使用OpenXml创建分页符

感谢

回答

35

您可以使用该<w:br>元素的运行元素中的分页符。在原始的OpenXML,它看起来是这样的:

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

如果您正在使用的OpenXML SDK,您可以使用

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

编辑:

如果你只是想说明一个段落是页面上的最后一件事,你可以试试<w:lastRenderedPageBreak />标签。

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

我尝试这个解决办法,但我有问题,如果我换页之前的一些数据填充前一页。 Word会添加分页符,然后我的代码会创建另一个分页符,并且我有一个空白页面。 :/我不知道如何改变这个:/ – arek 2010-06-18 12:13:18

+1

关于'w:br/@ w:type =“page”'这个答案的部分是好的,但是关于'w:lastRenderedPageBreak'的部分是不正确的。 'w:lastRenderedPageBreak'应该只能被处理器插入,这些处理器已经确定了渲染分页符***发生的位置;它没有指定分页符***应该发生的位置。 – kjhughes 2016-11-14 16:35:15

10

PageBreakBefore属性完成此操作。如果Word没有自动插入一个,它会在段落前插入一个分页符。

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

myParagraph.ParagraphProperties.PageBreakBefore = new PageBreakBefore(); 

我相信它会在开放式XML是这样的:

<w:p> 
    <w:pPr> 
     ... 
     <w:pageBreakBefore/> 
     ... 
    </w:pPr> 
    ...  
    </w:p>