我正在创建一个使用Java和iText生成PDF文件的程序。
我用PDFContentByte添加了一个矩形,用PDFPTable添加了一个表格。
我创建的第一件事是表格,它工作得很好,但当我添加矩形时,我发现它与我刚刚创建的表格重叠。我不知道如何解决这个问题。我想简单地看起来是这样的:
====================================
________________________________
| RECTANGLE |
|______________________________|
________________________________
|____________TABLE_____________|
|________|___________|_________|
|________|___________|_________|
|________|___________|_________|
====================================发布于 2013-05-01 22:41:43
您将直接内容(在您定义的坐标处添加)与遵循iText定义的布局的内容混合在一起(因为您使用的是document.add())。你应该坚持定义你自己的布局,或者让iText来做布局。
(1:)定义自己的布局意味着:不使用document.add(table);添加表,而使用table.writeSelectedRows()。这种方法有一个危险:如果表超过了页面的大小,它就会“从页面上掉下来”。为什么?因为你已经控制了布局。您需要确保将所有内容添加到正确的位置。
(2:)让iText进行布局意味着:不是使用PdfContentByte添加Rectangle,而是添加一个具有一列和一行的PdfTable。定义单个PdfPCell的固定高度,并使用单元格的边框、边框颜色和背景颜色来定义矩形的边框和颜色。首先添加特殊的表(看起来像Rectangle),然后添加真正的表。也许你想为表格定义一些“之前的间距”或“之后的间距”。
https://stackoverflow.com/questions/16318782
复制相似问题