Java iText组合行span和列span-PDFPTable
使用日历项目集并使用iText生成pdf打印约会。我可以用colspan和rowspan绘制一个单元格,但我不能组合它。表的宽度为4个单元格。我想实现这样的目标: (A) (B)(C)(C) (D) (E)(C)(C) 所以(1,1)、(1,2)和(2,1)(2,2)是规则细胞。但是在(1,3)中应该有一个单元格覆盖(1,3)(1,4)(2,3)和(2,4),因此colspan为2,rowspan为2 当前代码: PdfPTable=新的PdfPTable(4) PdfPCell=新的PdfPCell(新短语(“1,1”) 表2.addCell(cell) cell=新的PdfPCell(新短语(“1,2”)) 表2.addCell(cell) PdfPCell cell23=新的PdfPCell(新短语(“多1,3和1,4”)) 细胞23.setColspan(2) 第23单元。setRowspan(2) 表2.addCell(第23单元) cell=新的PdfPCell(新短语(“2,1”) 表2.addCell(cell) cell=新的PdfPCell(新短语(“2,2”)) 表2.addCell(cell) //应填充2,3和2,4,因为1,3具有行跨度2和列跨度2 //table.completeRow()//无效 但是,这会产生一个错误: ExceptionConverter:java.io.IOException:文档没有页面 如果我不开始创建第二行,它只会精细打印(1行),并且(1,3)上的单元格的colspan为2。因为没有第二行,所以rowspan(2)没有效果。Java iText组合行span和列span-PDFPTable,java,pdf,itext,pdfptable,Java,Pdf,Itext,Pdfptable,使用日历项目集并使用iText生成pdf打印约会。我可以用colspan和rowspan绘制一个单元格,但我不能组合它。表的宽度为4个单元格。我想实现这样的目标: (A) (B)(C)(C) (D) (E)(C)(C) 所以(1,1)、(1,2)和(2,1)(2,2)是规则细胞。但是在(1,3)中应该有一个单元格覆盖(1,3)(1,4)(2,3)和(2,4),因此colspan为2,rowspan为2 当前代码: PdfPTable=新的PdfPTable(4) PdfPCell=新的PdfPC
感谢您的帮助。第一眼看到这里,我会说:您会收到“文档没有页面”的异常,因为您没有向文档添加任何内容。我看不到:
document.add(table);
代码段中的任意位置
我已将您的代码复制/粘贴到完整示例中,并在此处发布了完整示例:。生成的PDF看起来像:
这似乎是我想要的行为。我只能想到两个区别:(1)您忘记添加实际的表(这是我最初的答案),或者(2)您使用的是一个非常旧的iText版本,其中rowspan不完全受支持。这只是一个片段,我稍后会这样做。正如我所说的,如果我不使用第二行,则总体结构没有问题。只是添加了第二行,这给了我一些问题。在根据您的代码编写了概念证明之后,我更新了我的答案。比ks.我猜是版本,因为我对document.add(table)有100%的把握-我刚刚注释掉了代码段中的第2行,然后它就显示出来了。因为很紧急,我不得不切换到低级API绘图,但很高兴看到它真的像我预期的那样工作。