2010-05-08 18 views
24

J'utilise OpenXml pour créer un document Word avec du texte simple et quelques tables sous ce texte. Comment est-ce que je peux forcer le paragraphe avec ce texte pour montrer toujours sur la nouvelle page? Peut-être que ce paragraphe devrait être un en-tête, mais je ne suis pas sûr de savoir comment le faire.Créer un saut de page en utilisant OpenXml

Merci

Répondre

35

Vous pouvez créer un saut de page dans un élément Exécuter en utilisant l'élément <w:br>. En OpenXML cru, il ressemblerait à quelque chose comme:

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

Si vous utilisez le SDK OpenXml, vous pouvez utiliser

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

EDIT:

Si vous voulez juste préciser qu'un paragraphe est la dernière chose sur une page, vous pouvez essayer le tag <w:lastRenderedPageBreak />.

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

-je essayer cette solution mais je problème si certaines données avant mon saut de page remplir la page précédente. Word ajoutera saut de page, puis mon code crée un autre saut de page et j'ai une page vide. :/Je ne suis pas sûr comment changer ceci:/ – arek

+1

La partie de cette réponse à propos de 'w: br/@ w: type =" page "' est bien, mais la partie sur 'w: lastRenderedPageBreak' est incorrecte. 'w: lastRenderedPageBreak' ne doit être inséré que par les processeurs qui ont déterminé où un saut de page rendu *** s'est produit ***; il ne spécifie pas où un saut de page *** devrait *** se produire. – kjhughes

10

La propriété PageBreakBefore accomplit cela. Il insérera un saut de page avant votre paragraphe si Word n'en a pas inséré automatiquement un.

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

myParagraph.ParagraphProperties.PageBreakBefore = new PageBreakBefore(); 

je crois qu'il ressemble à quelque chose comme ça dans Open XML:

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