2010-11-26 83 views
7

¿Cómo se puede agregar una nueva página a un documento iText? document.newPage(); parece que no funciona.iText agregar nueva página

estoy usando iText con el apoyo de RTF http://sourceforge.net/projects/itextrtf/

parte de mi código:

Font titleFont = new Font(Font.COURIER, 14, Font.BOLD); 
document.add(new Paragraph("Title1", titleFont)); 

Table table = new Table(4); 
table.setBorderWidth(0); 

// Filling table 

document.add(table); 

document.newPage(); 

document.add(new Paragraph("Title2", titleFont)); 

Table table = new Table(4); 
table.setBorderWidth(0); 

// Filling table 

document.add(table); 

Respuesta

0

El problema era que estaba usando un lector RTF incorrecto, la línea de corte estaba allí, el lector simplemente no la renderizó.

10

Editar: Re pregunta actualizada con código, ni de la de abajo parece aplicarse. Dejando en caso de que ayuden a alguien más a salir.

Llamar a newPage le dice a iText que coloque los objetos subsiguientes en una página nueva. La nueva página solo se creará realmente cuando coloque el siguiente objeto (al menos, eso es lo que hace para mí). Además, newPage solo crea una nueva página si la página actual no está en blanco; de lo contrario, es ignorado; puede usar setPageBlank(false) para superar eso.

+0

Agregué un código de ejemplo, agrego nuevos elementos después de llamar a newPage. – Thys

+0

@MrThys: V. extraño. Tengo un código que se ve bastante similar y funciona. Lamento no tener otra idea para ti, buena suerte con eso. –

+0

¿Puedes compartir tu código? – Thys

0

iText ya no admite RTF, ya que el autor principal del código relevante pasó a otros proyectos ... o se transformó en una rana ... o algo así. De todos modos, te recomiendo que busques una nueva biblioteca RTF, o quizás comiences a mantenerla tú mismo?

En cualquier caso, la fuente está disponible, y sospecho que RTFDocument/RTFWriter ignora newPage(). Nop. RtfWriter2.java:

/** 
* Adds a page break 
* 
* @return <code>false</code> 
*/ 
public boolean newPage() { 
    rtfDoc.add(new RtfNewPage(rtfDoc)); 
    return true; 
} 

que debería simplemente escribir "// página" en el archivo de salida. ¿Está ahí?

+0

Hola Marcos, I/m enfrenta el mismo problema con pdfContentbByte. http://stackoverflow.com/questions/27737501/how-to-get-new-page-in-itext. ¿Cualquier sugerencia? –