0

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

我使用 PDFContentByte 添加了一个 Rectangle 和使用 PDFPTable 的 Table。

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

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

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

====================================
4

1 回答 1

0

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

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

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

于 2013-05-01T14:41:42.563 回答