Domanda

Sto usando iText per generare report PDF quando ho riscontrato questo problema e ho elaborato un semplice esempio per illustrarlo.

Sto combinando semplici paragrafi e immagini.

L'altezza delle immagini è tale che 3 si adatta a una pagina PDF, ma quando il testo è su una pagina, solo 2 immagini si adattano.

Creo il mio PDF con il seguente codice:

    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();

Mi aspetto che l'output assomigli a questo

hello world1
image
image
<page break>
image
hello world2

Invece, quello che ottengo è,

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

Non sto impostando alcun tipo di parametri di wrapping dispari usando iText, l'esempio è davvero solo uno semplice.

Qualche idea sul motivo per cui sembra esserlo automaticamente in modo errato?

Nel caso reale, l'aggiunta di un'interruzione di pagina non è una soluzione accettabile.

Grazie mille.

È stato utile?

Soluzione

Capirlo da solo;)

writer.setStrictImageSequence(true); 

In iText è stata una decisione di progettazione non tagliare le immagini in due, ma prima aggiungere altri contenuti.

l'impostazione di questo valore booleano fa sì che iText rispetti l'ordinamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top