iText добавить новую страницу

Как добавить новую страницу в документ iText? document.newPage(); не работает.

Я использую iText с поддержкой RTF из http://sourceforge.net/projects/itextrtf/.

Часть моего кода:

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

person Thizzer    schedule 26.11.2010    source источник


Ответы (3)


Изменить: повторите ваш обновленный вопрос с кодом, похоже, ни один из приведенных ниже вариантов не применим. Ухожу на случай, если они кому-то помогут.

Вызов newPage указывает iText размещать последующие объекты на новая страница. Новая страница будет фактически создана только тогда, когда вы поместите следующий объект (по крайней мере, это то, что это делает для меня). Кроме того, newPage создает новую страницу только в том случае, если текущая страница не пуста; в противном случае он игнорируется; вы можете использовать setPageBlank(false), чтобы преодолеть это.

person T.J. Crowder    schedule 26.11.2010
comment
Добавлен пример кода, я добавляю новые элементы после вызова newPage. - person Thizzer; 26.11.2010
comment
@MrThys: В. странно. У меня есть код, который выглядит очень похоже и работает. Извините, что нет другой идеи для вас, удачи с ней. - person T.J. Crowder; 26.11.2010
comment
@MyThys: Не совсем, это слишком разбросано, но в основном это сводится к добавлению некоторых объектов (изображений или текста), вызову newPage и добавлению дополнительных объектов (изображений или текста). - person T.J. Crowder; 26.11.2010
comment
Дополнительно: после вызова newPage() определите как table= new PdfPTable(4), а затем добавьте 3 ячейки в table. Последняя страница из трех ячеек исчезла. В этом случае добавление 4 or 4*n ячеек, похоже, сработало хорошо. - person Ayano; 18.01.2018

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

Во всяком случае, источник доступен, и я подозреваю, что RTFDocument/RTFWriter игнорирует newPage(). Неа. RtfWriter2.java:

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

который должен просто записать "//page" в выходной файл. Это там?

person Mark Storer    schedule 29.11.2010
comment
Привет, Марк, я столкнулся с той же проблемой с pdfContentbByte. stackoverflow.com/questions/27737501 / . Любое предложение? - person Sai prateek; 02.01.2015

Проблема была в том, что я использовал не тот ридер RTF, линия разрыва была там, ридер просто не отображал ее.

person Thizzer    schedule 09.12.2010