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

3 ответов


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

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


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 " в выходной файл. Это там?


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