2015-02-16 21 views
5

Ho bisogno di creare un semplice documento word per la stampa da un programma java. È necessario che l'output sia stampato su pagine separate. Sto utilizzando il seguente codice:Interruzioni pagina apache poi

XWPFDocument document = new XWPFDocument(); 
 
XWPFParagraph paragraph = document.createParagraph(); 
 
XWPFRun run = paragraph.createRun(); 
 
run.setText("TITLE"); 
 
run.addCarriageReturn(); 
 
run.setText("some text and stuff here"); 
 
run.addBreak(BreakType.PAGE); 
 
run.setText("more text"); 
 
run.addCarriageReturn(); 
 
run.setText("one more line");

Il problema è che, qualsiasi cosa io provo ad inserire dopo l'apparizione interruzione di pagina sulla propria su una pagina (le ultime due righe di testo in cui sopra l'esempio apparirà su pagine diverse). È come se ora ci fosse un 'auto-page-break' dopo ogni affermazione. Ho provato a usare nuova corsa o nuovo paragrafo, ma il risultato è sempre lo stesso. Qualche idea? Cominciando ad essere molto frustrato qui ....

+0

Si utilizza BreakType.PAGE che, acoording alla documentazione: Specifica che l'interruzione corrente si riavvierà automaticamente nella pagina successiva del documento quando il documento viene visualizzato nella visualizzazione di pagina. – DeiAndrei

+0

Questo è quello che ho fatto. Ma sembra avere un effetto "knock on" e mette tutto ciò che segue su pagine separate ... – BendyMan

risposta

4

Hanno trovato una risposta - non sono sicuro che sia il modo migliore. È necessario aggiungere un ritorno a capo dopo l'ultima riga della pagina, oppure si sposta anche alla pagina successiva. Quindi aggiungere Break (WORD_WRAPPING) e avviare una nuova corsa per la pagina successiva. (L'unico problema di questa soluzione è che lascia una riga vuota nella parte superiore di ogni nuova pagina!)

XWPFDocument document = new XWPFDocument(); 
 
XWPFParagraph paragraph = document.createParagraph(); 
 
XWPFRun run = paragraph.createRun(); 
 
run.setText("TITLE"); 
 
run.addCarriageReturn(); 
 
run.setText("some text and stuff here"); 
 
run.addCarriageReturn();     //separate previous text from break 
 
run.addBreak(BreakType.PAGE); 
 
run.addBreak(BreakType.WORD_WRAPPING); //cancels effect of page break 
 
WXPFRun run2 = paragraph.createRun(); //create new run 
 
run2.setText("more text"); 
 
run2.addCarriageReturn(); 
 
run2.setText("one more line");

5
XWPFDocument document = new XWPFDocument(); 
... 
XWPFParagraph paragraph = document.createParagraph(); 
paragraph.setPageBreak(true);