Перенос страницы в iText - изменяет порядок элементов - PullRequest
2 голосов
/ 29 января 2009

Я использую iText для создания отчетов в формате PDF, когда натолкнулся на эту проблему, и разработал простой пример, чтобы проиллюстрировать это.

Я комбинирую простые абзацы и изображения.

Высота изображений такова, что 3 уместится на странице PDF, но если текст на странице, уместятся только 2 изображения.

Я создаю свой PDF со следующим кодом:

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

Я ожидаю, что результат будет выглядеть так

hello world1
image
image
<page break>
image
hello world2

Вместо этого я получаю

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

Я не устанавливаю какие-либо нечетные параметры переноса с помощью iText, пример на самом деле простой.

Любые идеи о том, почему кажется, что это неправильно оборачивается автоматически?

В реальном случае просто добавление разрыва страницы не является приемлемым решением.

Большое спасибо.

1 Ответ

5 голосов
/ 29 января 2009

Сам разберись;)

writer.setStrictImageSequence(true); 

В iText было дизайнерское решение не разрезать изображения на две части, вместо этого сначала добавляется другой контент.

установка этого логического значения заставляет iText соблюдать порядок.

...