我正在使用iText 5.1.3,我想在我的Pdf文档中添加一个标题。我使用了此处发布的已知解决方案:http://itextpdf.com/examples/iia.php?id=104
此解决方案使用PdfPageEventHelper
类,并覆盖方法onEndPage()
以在完成每个页面后完全添加标题。上面链接中提供的示例工作正常,因为它添加了一个表作为文档的标题。我想尝试完全相同的1差异,我希望该表中的一些单元格具有Rowspan和/或Colspan。
我尝试过,发现table.writeSelectedRows()
使用document.add(table)
与Rowspan
的{{1}}不同。这是我在onEndPage
中尝试做的一个示例:
PdfPTable mytable = new PdfPTable(3);
mytable.setTotalWidth(527);
PdfPCell cell1 = new PdfPCell(new Phrase("Hello"));
cell1.setColspan(2);
cell1.setRowspan(2);
mytable.addCell(cell1);
PdfPCell cell2 = new PdfPCell(new Phrase("Girls !"));
mytable.addCell(cell2);
PdfPCell cell3 = new PdfPCell(new Phrase("Boys !"));
mytable.addCell(cell3);
mytable.writeSelectedRows(0, -1, 34, 803, writer.getDirectContent());
而不是左边的单元格为“Hello”的2x2,我将“Hello”单元格设为1x2而不是2x2
有什么想法吗?
答案 0 :(得分:4)
嗯..我自己找到了解决方案:D它只是用以下内容替换mytable.writeSelectedRows(0, -1, 34, 803, writer.getDirectContent());
:
ColumnText column = new ColumnText(writer.getDirectContent());
column.addElement(mytable);
column.setSimpleColumn(-12, -20, 604, 803); // set LLx, LLy, URx, and URy of the header
column.go();
就是这样:)工作:))
答案 1 :(得分:0)
当我使用iText-2.1.7时,iText writeSelectedRows不能与rowSpan一起使用,rowSpan单元格不会增长到其他行,但它有一个解决方法。
ArrayList tmp = table.getRows(0, table.getRows().size());
table.getRows().clear();
table.getRows().addAll(tmp);
table.writeSelectedRows(0, -1, x, y, directContent);