Demo
PdfPTable table = new PdfPTable(3)
// 设置表格的填充宽度百分比,在当前 Table 和其父级的左右宽度微调的时候使用。
table.setWidthPercentage(95) // 宽带95填充,左右流出一点点空间出来。
// 表格与其上边和下边元素的间隔
table.setSpacingBefore(10f) // 前间距
table.setSpacingAfter(10f) // 后间距
// 默认一个单元个如果在当前页显示不下,就会整个移动到下一个页面,如下设置会分割单元格到两个页面上。
table.setSplitLate(false) // 表格跨页显示需要设置1
table.setSplitRows(true) // 表格跨页显示需要设置2
// 设置每个单元格的相对的 Width,这里有个技巧就是把所有列占用的空间比作 1,想让每个列占多大的位置,这里就分成对应的值就行,最终相加等于1即可。
float[] columnWidths = [0.2f, 0.2f, 0.6f]
table.setWidths(columnWidths)
PdfPCell
- 注意行间距:例如 9 磅字体setLeading(1.5f, 1.5f),第一行坐标在(10,10)开始,第二行则在(1.5 + 1.5*10,10)处开始,两行会间隔 6.5(16.5 - 9)磅的空白,Word也是这样的计算方式。
PdfPCell cell = new PdfPCell(new Paragraph("企业名称:" + companyName, customFont.font12))
// 设置 comumn 的最小 Height
cell.setMinimumHeight(30)
// 设置垂直对其方式
cell.setHorizontalAlignment(Cell.ALIGN_LEFT)
// 设置水平对其方式
cell.setVerticalAlignment(Cell.ALIGN_MIDDLE)
// 合并列
cell.setColspan(3)
// 设置边框宽度
cell.setBorderWidth(0.5f)
// 设置单元格内文字的行间距,第一个参数是固定间距,第二个参数是成倍的间距:1.5磅 + 1.5 * 此行最大字体的磅数
cell.setLeading(1.5f, 1.5f)
// 设置单元格内四周边距,也可以单独设置每边的边距,默认边距是 2
cell.setPadding(15)
// 去掉右边边框
cell.setBorderWidthRight(0)
// 去掉外层边框
cell.setBorder(0)
// 合并行
cell1.setRowspan(4)
// 单元格的水平垂直居中设置
cell1.setUseDescender(true)
cell1.setHorizontalAlignment(Element.ALIGN_CENTER)
cell1.setVerticalAlignment(Element.ALIGN_MIDDLE)
// 添加到 Table
table.addCell(cell)