com.itextpdf.text.PdfPTable & PdfPCell

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)
原文地址:https://www.cnblogs.com/duchaoqun/p/13689402.html