Подтвердить что ты не робот

Создание разрыва страницы с помощью OpenXml

Я использую OpenXml для создания документа Word с простым текстом и некоторыми таблицами в этом тексте. Как я могу заставить Paragraph с этим текстом всегда отображаться на новой странице? Возможно, этот абзац должен быть заголовком, но я не уверен, как это сделать.

Спасибо

4b9b3361

Ответ 1

Вы можете создать разрыв страницы в элементе Run с помощью элемента <w:br>. В raw 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 }));

EDIT:

Если вы просто хотите указать, что абзац является последним на странице, вы можете попробовать тег <w:lastRenderedPageBreak />.

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

Ответ 2

Свойство 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>