2010-05-08 15 views
24

Io uso OpenXml per creare documenti Word con testo semplice e alcune tabelle sotto questo testo. Come posso forzare Paragrafo con questo testo per mostrare sempre su una nuova pagina? Forse questo paragrafo dovrebbe essere un po 'di intestazione, ma non sono sicuro di come farlo.Creare un'interruzione di pagina usando OpenXml

Grazie

risposta

35

È possibile creare un'interruzione di pagina all'interno di un elemento Run utilizzando l'elemento <w:br>. In OpenXML cruda, sarebbe qualcosa di simile:

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

Se si sta utilizzando l'SDK OpenXml, è possibile utilizzare

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

EDIT:

Se si desidera solo per specificare che un il paragrafo è l'ultima cosa in una pagina, puoi provare il tag <w:lastRenderedPageBreak />.

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

Ho provare questa soluzione, ma non ho problemi se alcuni dati prima della mia interruzione di pagina riempiono pagina precedente. Word aggiungerà un'interruzione di pagina, quindi il mio codice crea un'altra interruzione di pagina e io ho una pagina vuota. :/Non sono sicuro di come cambiare questo:/ – arek

+1

La parte di questa risposta su 'w: br/@ w: type =" page "' va bene, ma la parte su 'w: lastRenderedPageBreak' non è corretta. 'w: lastRenderedPageBreak' dovrebbe essere inserito solo dai processori che hanno determinato dove si è verificata un'interruzione di pagina di rendering *** *** *** non specifica dove dovrebbe avvenire una interruzione di pagina *** *** – kjhughes

10

La proprietà PageBreakBefore consente di ottenere ciò. Inserirà un'interruzione di pagina prima del paragrafo se Word non ne ha inserito uno automaticamente.

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

myParagraph.ParagraphProperties.PageBreakBefore = new PageBreakBefore(); 

credo che sembra qualcosa di simile in Open XML:

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