java itext table_关于java:结合rowspan和colspan的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),因此具有2的spspan和2的行距。

当前代码:

PdfPTable table = new PdfPTable(4);

PdfPCell cell = new PdfPCell(new Phrase(" 1,1"));

table.addCell(cell);

cell = new PdfPCell(new Phrase(" 1,2"));

table.addCell(cell);

PdfPCell cell23 = new PdfPCell(new Phrase("multi 1,3 and 1,4"));

cell23.setColspan(2);

cell23.setRowspan(2);

table.addCell(cell23);

cell = new PdfPCell(new Phrase(" 2,1"));

table.addCell(cell);

cell = new PdfPCell(new Phrase(" 2,2"));

table.addCell(cell);

// 2,3 and 2,4 should be filled because 1,3 has rowspan 2 and colspan 2.

//table.completeRow(); //no effect

但是会产生错误:

ExceptionConverter: java.io.IOException: The document has no pages.

如果我没有开始创建第二行,它只是绘制好(1行,并且(1,3)上的单元格具有2的colspan。因为没有第二行,所以rowspan(2)没有效果。

任何帮助表示赞赏。 谢谢

乍一看,我会说:你得到一个"文档没有页面"的例外,因为你没有在文档中添加任何内容。 我没有看到:

document.add(table);

代码段中的任何位置。

我已将您的代码复制/粘贴到一个完整的示例中,我在此处发布了完整的示例:ColspanRowspan。 生成的PDF如下所示:

55cb9976a1a34a47554796131d2c9840.png

这似乎是理想的行为。 我只能想到两个不同之处:(1)你忘了添加实际的表(这是我最初的答案),或者(2)你正在使用强大的旧版iText,其中rowspan不完全支持。

它只是一个片段,我稍后会这样做。 正如我所说,如果我离开第二排,一般结构没有问题。 它只添加第二行给我带来问题。

在根据您的代码编写概念验证后,我更新了我的答案。

谢谢。 我想这是版本,因为我100%肯定document.add(表) - 我只是注释掉了代码段中的第2行然后它显示了。 由于迫切需要切换到低级API绘图,但很高兴看到它实际上按照我的预期工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值