使用iText在PDF中将整个表格行着色的最简单方法是什么?目前我的代码只会在表格中为特定的单元格着色,但我不知道如何使整个行着色。
如果有人能告诉我这是怎么做的,请不要发帖但请不要发布任何代码!我想自己做代码。感谢
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
PdfPCell cell = new PdfPCell(new Phrase(myJTable.getValueAt(i, j).toString(), myFont));
if (phrase.toString().contains("Test")) {
cell.setBackgroundColor(BaseColor.RED); //I want to change the colour of
//the entire row containing a cell called "Test", not only the cell itself
}
pdfTable.addCell(cell);
}
}
答案 0 :(得分:2)
如果您已经拥有PdfPRow
对象,则需要在其上调用getCells()
,然后遍历返回的单元格,设置每个对象的颜色。
如果您还没有PdfPRow
,则可以通过getTable
PdfPCell
方法和getRow
PdfPTable
方法获取{{1}}。
答案 1 :(得分:1)
我认为你不能直接。您可以调用getRow(int)来获取给定的PdfPRow,但PdfPRow中没有设置填充(或背景)颜色的方法。然后,您可以在该行上调用getCells(),然后为该行的所有颜色着色(如您的示例所示)。
答案 2 :(得分:0)
另一种方法是更改默认的单元格颜色并保持这种方式,直到完成着色单元格。
table.getDefaultCell().setBackgroundColor(BaseColor.RED);
table.addCell("1.0");
table.addCell("1.1");
table.addCell("1.2");
table.getDefaultCell().setBackgroundColor(BaseColor.WHITE);
table.addCell("2.1");
table.addCell("2.2");
table.addCell("2.3");
还有另一种绘制矩形的方法。请查看此示例here。