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