Pregunta

Estoy usando iText para generar informes en PDF cuando me encontré con este problema y elaboré un ejemplo simple para ilustrarlo.

Estoy combinando párrafos simples e imágenes.

La altura de las imágenes es tal que caben 3 en una página PDF, pero cuando el texto está en una página, solo caben 2 imágenes.

Creo mi PDF con el siguiente código:

    Document document = new Document(PageSize.LETTER, 0, 0, 0, 0);
    PdfWriter writer = PdfWriter.getInstance(document, fileOutput);
    document.open();
    document.add(new Paragraph("hello world1"));
    addImage(document);
    addImage(document);
    addImage(document);
    document.add(new Paragraph("hello world2"));
    document.close();

Espero que la salida se vea así

hello world1
image
image
<page break>
image
hello world2

En cambio, lo que obtengo es,

Hello world 1
image
image
hello world 2
<page break>
image

No estoy configurando ningún tipo de parámetro de ajuste extraño usando iText, el ejemplo realmente es simple.

¿Alguna idea de por qué parece estar automáticamente envolviendo esto incorrectamente?

En el caso real, simplemente agregar un salto de página no es una solución aceptable.

Muchas gracias.

¿Fue útil?

Solución

Averígualo yo mismo;)

writer.setStrictImageSequence(true); 

Fue una decisión de diseño en iText no cortar imágenes en dos, sino que primero agrega otro contenido.

establecer este valor booleano hace que iText respete el orden.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top