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)