2010-11-26 119 views
7

如何將新頁面添加到iText文檔? document.newPage();似乎不起作用。iText添加新頁面

我利用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); 

回答

0

問題是我使用了一個錯誤的RTF閱讀器,breakline在那裏,讀者只是沒有渲染它。

10

編輯:重新使用代碼更新的問題,既不的下面似乎也適用。離開以防他人幫助別人。

調用newPage告訴iText將後續對象放在新頁面上。新頁面只有在放置下一個對象時纔會真正創建(至少,這就是它爲我做的)。另外,如果當前頁面不是空白,則newPage僅創建一個新頁面;否則,它被忽略;你可以用setPageBlank(false)來解決這個問題。

+0

添加了一些示例代碼,我在添加新元素後調用newPage。 – Thys 2010-11-26 11:13:48

+0

@MrThys:V.很奇怪。我的代碼看起來很相似並且工作正常。對不起,不要有另一個想法給你,祝你好運。 – 2010-11-26 11:16:10

0

iText不再支持RTF,因爲相關代碼的主要作者轉移到其他項目......或被轉換成青蛙......或其他東西。無論如何,我建議你尋找一個新的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」。它在嗎?