矩形与PDFPTable重叠

时间:2013-05-01 13:12:39

标签: java pdf itext

我正在创建一个使用Java和iText生成PDF文件的程序。

我使用PDFContentByte添加了一个Rectangle,使用PDFPTable添加了表。

我创建的第一件事就是桌子,它工作正常但是当我添加了Rectangle时,我发现它与我刚才创建的表格重叠。我不知道如何解决这个问题。我希望看起来像这样:

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

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

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

1 个答案:

答案 0 :(得分:0)

您将直接内容(在您定义的坐标处添加)与遵循iText定义的布局的内容混合(因为您使用的是document.add())。您应该坚持定义自己的布局,或者让iText进行布局。

(1 :)定义您自己的布局意味着:请勿使用document.add(table);使用table.writeSelectedRows()来添加表格。这种方法存在危险:如果表格超出了页面的大小,它将“掉落页面”。为什么?因为你已经控制了布局。您需要确保在正确的位置添加所有内容。

(2 :)让iText执行布局意味着:添加Rectangle一列和一行,而不是添加PdfContentByte PdfTable。为单个PdfPCell定义固定高度,并使用单元格的边框,边框颜色和背景颜色来定义边框和矩形的颜色。首先添加特殊表(看起来像Rectangle),然后添加真实表。也许你想要为表格定义一些'spacing-before'或'spacing-after'。