2010-05-08 60 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>