【发布时间】:2010-05-08 19:20:28
【问题描述】:
我使用 OpenXml 创建 Word 文档,其中包含简单的文本和该文本下的一些表格。如何强制带有此文本的段落始终显示在新页面上?也许这一段应该是一些标题,但我不知道该怎么做。
谢谢
【问题讨论】:
标签: c# .net openxml openxml-sdk
我使用 OpenXml 创建 Word 文档,其中包含简单的文本和该文本下的一些表格。如何强制带有此文本的段落始终显示在新页面上?也许这一段应该是一些标题,但我不知道该怎么做。
谢谢
【问题讨论】:
标签: c# .net openxml openxml-sdk
您可以使用 <w:br> 元素在 Run 元素中创建分页符。在原始 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")));
【讨论】:
w:br/@w:type="page" 的部分很好,但关于w:lastRenderedPageBreak 的部分不正确。 w:lastRenderedPageBreak 只能由已确定呈现分页符 did 发生位置的处理器插入;它没有指定分页符应该发生的位置。
PageBreakBefore 属性实现了这一点。如果 Word 没有自动插入分页符,它会在段落之前插入分页符。
if (myParagraph.ParagraphProperties== null)
{
myParagraph.ParagraphProperties = new ParagraphProperties();
}
myParagraph.ParagraphProperties.PageBreakBefore = new PageBreakBefore();
我相信它在 Open XML 中看起来像这样:
<w:p>
<w:pPr>
...
<w:pageBreakBefore/>
...
</w:pPr>
...
</w:p>
【讨论】: