2013-05-01 127 views
0

我正在創建一個使用Java和iText生成PDF文件的程序。與PDFPTable的矩形重疊

我添加了一個使用PDFContentByte和PDFPTable的表的矩形。

我創建的第一件事是表格,它工作正常,但是當我添加矩形時,我發現它與剛纔創建的表格重疊。我不知道如何解決這個問題。我想簡單地看它像這樣:

==================================== 

________________________________ 
|   RECTANGLE   | 
|______________________________| 
________________________________ 
|____________TABLE_____________| 
|________|___________|_________| 
|________|___________|_________| 
|________|___________|_________| 

==================================== 

回答

0

你混合與遵循iText的定義(因爲你使用document.add())佈局內容直接內容(座標你定義添加)。你應該堅持要麼定義你自己的佈局,要麼讓iText做佈局。

(1 :)定義您自己的佈局意味着:不要使用document.add(table);而是使用table.writeSelectedRows()來代替。這種方法存在一個危險:如果表格超過頁面的大小,它將「丟棄頁面」。爲什麼?因爲你已經控制了佈局。您需要確保您將所有內容添加到正確的位置。

(2 :) Letting iText做佈局的意思是:而不是增加一個與PdfContentByte,添加一列和一行PdfTable。爲單個單元PdfPCell定義固定高度,並使用單元格的邊框,邊框顏色和背景顏色來定義邊框和矩形的顏色。首先添加特殊表格(看起來像Rectangle),然後添加真實表格。也許你想爲表格定義一些'間隔之前'或'間隔之後'。