1
我试图在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);
}
我不知道我在想什么。
感谢您的帮助,
格雷格
嗨布鲁诺,我刚刚在我的代码中发现了一个错字,我改变了外表的宽度,而不是设置内表的宽度。在我解决之后,一切正常。感谢您的评论。 – Greg