2010-05-08 1 views
24

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

Благодаря

ответ

35

Вы можете создать разрыв страницы внутри элемента Run, используя <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 })); 

EDIT:

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

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

я попробовать это решение, но у меня есть проблема, если некоторые данные до моего разрыва страницы заполнить предыдущую страницу. Word добавит разрыв страницы, тогда мой код создает другой разрыв страницы, и у меня есть одна пустая страница. :/Я не уверен, как это изменить:/ – arek

+1

Часть этого ответа о 'w: br/@ w: type =" page "' отлично, но часть о 'w: lastRenderedPageBreak' неверна. 'w: lastRenderedPageBreak' должен быть вставлен только процессорами, которые определили, где произошел случайный разрыв страницы *** ***; он не указывает, где происходит разрыв страницы ***. – kjhughes

10

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

 Смежные вопросы

  • Нет связанных вопросов^_^