表格组件
大约 1 分钟组件表格组件
说明
- 坐标原点为左上角。
- 必须设置表格行高度。
- 支持自定义坐标。
- 支持行合并与列合并。
- 支持跨页合并。
- 支持自定义边框样式。
- 支持多个任意组件。
- 表格行超出页面高度自动分页(支持内容分页与整行分页)。
- 合并行时,被合并列需要使用 null 填充。
示例
// 创建文档
Document document = PdfHandler.getDocumentHandler().create();
// 创建页面
Page page = new Page(document);
// 定义每列宽度
float width = 100F;
// 定义行高
float height = 70F;
// 创建表格
Table table = new Table(document.getCurrentPage());
// 设置列宽(4列)
table.setCellWidths(width, width, width, width);
// 设置显示边框
table.setIsBorder(true);
// 添加行
for (int i = 0; i < 10; i++) {
// 创建行
TableRow tableRow = new TableRow(table);
// 设置行高
tableRow.setHeight(height);
// 第3行合并列
if (i == 2) {
// 创建文本域
Textarea textarea = new Textarea(table.getPage());
// 设置文本
textarea.setText("第" + i + "行" + "合并列");
// 创建单元格
TableCell cell = new TableCell(tableRow);
// 设置合并列数
cell.setColspan(3);
// 添加组件
cell.addComponents(textarea);
// 添加单元格
tableRow.addCells(cell);
}else {
// 添加列
for (int j = 0; j < 4; j++) {
// 被合并列
if (i > 3 && i < 6 && j == 0) {
// 添加占位
tableRow.addCells((TableCell) null);
} else {
// 创建文本域
Textarea textarea = new Textarea(table.getPage());
// 设置文本
textarea.setText("第" + i + "行" + "第" + j + "列");
// 创建单元格
TableCell cell = new TableCell(tableRow);
// 添加组件
cell.addComponents(textarea);
// 第4行第1列合并2行
if (i ==3 && j == 0) {
// 设置合并行数
cell.setRowspan(2);
}
// 添加单元格
tableRow.addCells(cell);
}
}
}
// 添加行
table.addRows(tableRow);
}
// 绘制
table.render();
// 添加页面
document.appendPage(page);
// 保存文档
document.save("E:\\PDF\\pdfbox\\table\\test.pdf");
// 关闭文档
document.close();