Créer un saut de page en utilisant OpenXml

J'utilise OpenXml pour créer un document Word avec du texte simple et quelques tables sous ce texte. Comment puis-je forcer le paragraphe avec ce texte à s'afficher toujours sur une nouvelle page? Peut-être que ce paragraphe devrait être un en-tête, mais je ne sais pas comment faire cela.

Merci

27
demandé sur arek 2010-05-08 23:20:28

2 réponses

Vous pouvez créer un saut de page dans un élément Run à l'aide de l'élément <w:br>. Dans OpenXML brut, cela 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 }));

Modifier:

Si vous voulez simplement spécifier qu'un paragraphe est la dernière chose sur une page, vous pouvez essayer la balise <w:lastRenderedPageBreak />.

new Paragraph(
   new Run(
      new LastRenderedPageBreak(),
      new Text("Last text on the page")));
39
répondu Adam Sheehan 2016-11-14 16:30:48

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

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

myParagraph.ParagraphProperties.PageBreakBefore = new PageBreakBefore();

Je crois que cela ressemble à ceci en Open XML:

  <w:p>
    <w:pPr>
      ...
      <w:pageBreakBefore/>   
      ...
    </w:pPr>
    ...    
  </w:p>
10
répondu Collin K 2011-09-29 23:25:14