2010-05-08 24 views
24

Bu metin altında basit bir metin ve bazı tablolar içeren bir Word belgesi oluşturmak için OpenXml kullanıyorum. Her zaman yeni sayfada gösterilmek üzere bu metinle Paragraf'ı nasıl zorlayabilirim? Belki bu paragrafın bir başlık olması gerekir ama bunu nasıl yapacağımdan emin değilim.OpenXml kullanarak sayfa sonu oluşturma

Teşekkür

cevap

35

Sen <w:br> elemanı kullanarak bir Çalıştır öğesi içinde bir sayfa sonu oluşturabilir. Ham OpenXML, bu gibi görünecektir:

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

Eğer OPENXML SDK'sini kullanıyorsanız, kullanabileceğiniz

new Paragraph(
    new Run(
    new Break(){ Type = BreakValues.Page })); 

DÜZENLEME: Eğer sadece bir olduğunu belirtmek istiyorsanız

Bir sayfadaki son şey paragraf <w:lastRenderedPageBreak /> etiketini deneyebilirsiniz.

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

Bu çözümü deneyin ama benim sayfa sonu önce bazı veriler önceki sayfasını dolduracak eğer sorun var:

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

Ben Açık XML şuna benzer inanıyoruz. Word sayfa sonu ekler, sonra kodum başka bir sayfa sonu oluşturur ve boş bir sayfam var. :/Bunu nasıl değiştireceğimi bilmiyorum:/ – arek

+1

Bu yanıtın 'w: br/@ w: type =" page "' ile ilgili kısmı gayet iyi, ancak 'w: lastRenderedPageBreak 'ile ilgili kısım yanlış. w: lastRenderedPageBreak', yalnızca işlenmiş sayfa sonu *** 'nin oluştuğu yeri belirleyen işlemciler tarafından eklenmelidir; bir sayfa sonu *** oluşması gereken yeri belirtmez. – kjhughes

10

PageBreakBefore özelliği bunu gerçekleştirir. Word otomatik olarak ekleme yapmadıysa, paragrafınızdan önce sayfa sonu ekler.

<w:p> 
    <w:pPr> 
     ... 
     <w:pageBreakBefore/> 
     ... 
    </w:pPr> 
    ...  
    </w:p>