我正在使用具有许多表的 itext 5。每个表都有许多具有不同单元格高度的行。当表格的第一行不适合页面的其余部分时,iText 会拆分表格,页面的最后一行显示为标题行,下一页的第一行显示为第二个标题行。
我只希望表格的第一行不适合页面的其余部分,然后将其放在新页面上。该表应该能够在除第一行之外的任何行上拆分。我已经用 setSplitRows、setSplitLate 和 keepRowsTogether 试过了,但没用。
public class ProposalItextSplitRow {
public ProposalItextSplitRow() {
}
public static void main(String[] args) {
try {
String methodName = Thread.currentThread().getStackTrace()[2].getMethodName();
Document document = new Document();
document.setPageSize(PageSize.LETTER);
document.setMargins(16, 14, 14, 14);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:/Test.pdf"));
document.open();
document.setPageSize(PageSize.LETTER);
document.setMargins(16, 14, 42, 38);
for (int m = 1; m < 20; m++) {
PdfPTable table = new PdfPTable(1);
table.setSpacingAfter(0);
table.setSpacingBefore(0);
table.setWidthPercentage(100);
table.setHeaderRows(1);
table.setSkipFirstHeader(true);
add(table, "Header Row continued " + m, BaseColor.LIGHT_GRAY);
add(table, "Header Row normal " + m, BaseColor.LIGHT_GRAY);
add(table, "Text Row 1 ", BaseColor.WHITE);
add(table, "Text Row 2 ", BaseColor.WHITE);
add(table, "Text Row 3 ", BaseColor.WHITE);
addPadding(table);
document.add(table);
}
document.close();
} catch (Exception de) {
de.printStackTrace();
}
}
private static void add(PdfPTable table, String text, BaseColor color) {
PdfPCell pdfCellHeader = new PdfPCell();
pdfCellHeader.setBackgroundColor(color);
pdfCellHeader.addElement(new Paragraph(new Phrase(text)));
table.addCell(pdfCellHeader);
}
private static void addPadding(PdfPTable table) {
PdfPCell cell = new PdfPCell();
cell.setFixedHeight(4f);
cell.setBorder(Rectangle.NO_BORDER);
cell.setColspan(table.getNumberOfColumns());
table.addCell(cell);
}
}