【发布时间】:2014-04-03 01:25:42
【问题描述】:
您好,我想添加 2 行的页脚。第一行将具有带有背景颜色的文档名称。第二行将有版权说明。我尝试使用 ColumnText 创建。但我无法为行设置背景颜色(只有文本获取背景颜色)。有没有办法做到这一点。我整晚都在寻找解决方案,但无法做到。
【问题讨论】:
标签: java pdf pdf-generation itext footer
您好,我想添加 2 行的页脚。第一行将具有带有背景颜色的文档名称。第二行将有版权说明。我尝试使用 ColumnText 创建。但我无法为行设置背景颜色(只有文本获取背景颜色)。有没有办法做到这一点。我整晚都在寻找解决方案,但无法做到。
【问题讨论】:
标签: java pdf pdf-generation itext footer
您可以通过阅读文档来挽救自己一个不眠之夜。您会发现可以使用setBackgroundColor() 方法设置单元格的背景,并且可以使用writeSelectedRows() 方法在绝对位置添加表格。
看看TableFooter的例子:
PdfPTable table = new PdfPTable(1);
table.setTotalWidth(523);
PdfPCell cell = new PdfPCell(new Phrase("This is a test document"));
cell.setBackgroundColor(BaseColor.ORANGE);
table.addCell(cell);
cell = new PdfPCell(new Phrase("This is a copyright notice"));
cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
table.addCell(cell);
如果一行中有多个单元格,则需要为所有单元格设置背景。请注意,我正在定义表格的总宽度(523 是页面宽度减去边距)。总宽度是必需的,因为我们将使用writeSelectedRows() 添加表格:
footer.writeSelectedRows(0, -1, 36, 64, writer.getDirectContent());
生成的 PDF 看起来像 this。确保以页脚表格不与页面内容重叠的方式定义页面的边距。
【讨论】: