2013-02-25 116 views
0

我正在创建一个列PdfPTable给定一个矩形,在一个特殊的绝对位置。在这个表格中,我需要添加一个PdfPCells集合并尽可能多地显示单元格内容,并且单元格必须在表格矩形边界处剪切。我照顾宽度由:如何使用iText在PdfPTable中剪切单元格?

PdfPTable cutTable = new PdfPTable(1); 
    cutTable.setTotalWidth(200f); 
    cutTable.setLockedWidth(true); 

我在每一个小区的短语对象,我添加了一组细胞的表。问题在于单元格溢出桌子高度边界,并且没有剪裁。我试图在添加每个单元格后跟踪总单元格的高度,但问题是,由于我要求表格中的行高,因此必须先插入单元格,并且在最后一个单元格溢出时我的计算关闭。

如何获取表格以剪切单元格内容的边界?如果我不能这样做,在添加到表格之前,如何确定单元格的高度(该短语使用Arial 8字体)与默认文本换行?

在此先感谢您的帮助。

回答

0

查看我的书“iText in Action”中的CellHeights示例。它使用不同的选项来设置单元格的高度。我认为你需要setFixedHeight()方法。使用此方法时,添加到不适合高度的单元格中的所有内容都将被删除。

+0

感谢布鲁诺。我有你的真棒书,并多次阅读第4章。我正在寻找的是如何在调用table.addCell(cell)之前确定包含文本的单元格的高度?我有一个用绝对宽度和高度创建的表格。我有很多行要插入的单元格,但想插入到表格矩形的边界。如果所有行都具有固定的高度,则设置固定的单元格高度将起作用但是,当单元格中包含文本时,如何在添加单元格之前确定其高度,以便最后添加的单元格不会溢出底部表格边界? – Kathy 2013-02-25 21:38:18

+0

我不认为我理解你在做什么,但我知道:1.你不能问iText在将一个单元格添加到一个表之前需要多少空间,因为表格决定了细胞。 2.如果您想知道内容占用了多少位置,则可以使用ColumnText对象来检查内容。如果使用PdfTemplate呈现列,则可以重新使用PdfTemplate创建单元格。也许这是一个解决方案,但是......正如我所说:我不确定我是否理解这个问题。 – 2013-02-26 08:46:33

+0

我不得不创建不同高度的多列表。问题是我已经包装了文本,并且当我插入单元格时,它们未被剪切到表格边界;因此,您可以直观地看到细胞在边界矩形上溢出/流血。 我在添加单元格之后,通过跟踪单元格高度来解决此问题。如果总单元高度大于表格高度,我将先前添加的单元移除并停止插入单元。这个解决方案的工作,但我希望PdfPTable,给定一个尺寸和llx,lly,它可以剪裁矩形区域为我。谢谢。 – Kathy 2013-03-04 20:11:34

相关问题