Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用OpenXml创建分页符_C#_.net_Openxml_Openxml Sdk - Fatal编程技术网

C# 使用OpenXml创建分页符

C# 使用OpenXml创建分页符,c#,.net,openxml,openxml-sdk,C#,.net,Openxml,Openxml Sdk,我使用OpenXml创建带有简单文本的Word文档,并在此文本下创建一些表。我怎样才能强制带有此文本的段落始终显示在新页面上?也许这一段应该是一些标题,但我不知道如何做到这一点 谢谢您可以使用元素在Run元素中创建分页符。在原始OpenXML中,它看起来像: <w:p> <w:r> <w:br w:type="page" /> </w:r> </w:p> 编辑: 如果只想指定段落是页面上的最后一个内容,可以尝试使用标记

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


谢谢

您可以使用
元素在Run元素中创建分页符。在原始OpenXML中,它看起来像:

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

如果只想指定段落是页面上的最后一个内容,可以尝试使用
标记

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

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>

...
...
...    

我尝试了此解决方案,但如果分页符之前的某些数据填满了上一页,我会遇到问题。Word将添加分页符,然后我的代码创建另一个分页符,我有一个空白页。:/我不知道如何改变这一点:/答案中关于
w:br/@w:type=“page”
的部分没有问题,但是关于
w:lastrendedpagebreak
的部分不正确<代码>w:lastRenderedPageBreak只能由已确定渲染分页符发生位置的处理器插入;它没有指定分页符应该出现的位置。
  <w:p>
    <w:pPr>
      ...
      <w:pageBreakBefore/>   
      ...
    </w:pPr>
    ...    
  </w:p>