2013-05-01 84 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),然后添加真实表格。也许你想为表格定义一些'间隔之前'或'间隔之后'。