我正在尝试将嵌套表与 iText 一起使用。我得到一个 DocumentException:
表格宽度必须大于零。
外部表有 16 列。我调用一个传入外部表的方法。此方法添加两个内表。如果我添加任何一个内部表,它都可以正常工作。如果我添加第二个内表,我会得到从 PdfPTable.writeSelectedRows 方法抛出的异常。
private final float[] columnWidths = {183, 31, 88, 49, 35, 25, 35, 35, 35, 32, 32, 33, 35, 60, 46, 26 };
public void buildPdfReport(ByteArrayOutputStream out) {
Document document;
PdfWriter pdfWriter;
document= new Document(PageSize.LETTER.rotate(), 2, 2, 5, 2);
pdfWriter = PdfWriter.getInstance(document, out);
document.open();
PdfPTable outerTable = new PdfPTable(columnWidths);
table.setTotalWidth(770F);
table.setLockedWidth(true);
buildNestedTables(table);
document.add(outerTable);
document.newPage();
document.close();
pdfWriter.close();
}
private void buildNestedTables(PdfPTable outerTable) {
PdfPTable innerTable1 = new PdfPTable(1);
PdfPTable innerTable2 = new PdfPtable(2);
PdfPCell cell;
innerTable1.addCell("Cell 1");
innerTable1.addCell("Cell 2");
outerTable.addCell(innerTable1);
innerTable2.addCell("Cell 3");
innerTable2.addCell("Cell 4");
outerTable.addCell(innerTable2);
cell = new PdfPCell("");
cell.setColspan(14);
outerTable.addCell(cell);
}
我不确定我错过了什么。
感谢您的任何帮助,
格雷格