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

내가이 솔루션을 시도하지만 내 페이지 나누기 전에 일부 데이터가 이전 페이지를 채울 경우 내가 문제가 :

if (myParagraph.ParagraphProperties== null) { myParagraph.ParagraphProperties = new ParagraphProperties(); } myParagraph.ParagraphProperties.PageBreakBefore = new PageBreakBefore(); 

나는 그것을 오픈 XML이 같이 보입니다 생각합니다. Word에서 페이지 나누기를 추가 한 다음 내 코드가 다른 페이지 나누기를 만들고 빈 페이지가 하나 있습니다. :/이걸 어떻게 바꿀 지 모르겠다 :/ – arek

+1

'w : br/@ w : type = "page"에 대한 답은'w : lastRenderedPageBreak'에 대한 부분이 잘못되었습니다. 'w : lastRenderedPageBreak'는 렌더링 된 페이지 나누기 ***가 발생한 곳을 결정한 프로세서에 의해서만 삽입되어야합니다. 페이지 나누기 ***가 발생해야하는 위치를 지정하지 않습니다. – kjhughes

10

PageBreakBefore 속성이이를 수행합니다. Word에서 자동으로 삽입하지 않으면 단락 앞에 페이지 나누기가 삽입됩니다.

<w:p> 
    <w:pPr> 
     ... 
     <w:pageBreakBefore/> 
     ... 
    </w:pPr> 
    ...  
    </w:p> 
관련 문제