iText的 - PdfPTable ROWSPAN使用mytable.writeSelected

2019-08-03 11:41发布

我利用iText 5.1.3,我想将头添加到我的PDF文档。 我用已知的解决方案张贴在这里: http://itextpdf.com/examples/iia.php?id=104

该解决方案使用的PdfPageEventHelper类,和覆盖的方法onEndPage()恰好在完成每一页后添加页眉。 在上面的链接提供的例子,因为它增加了一个表作为文档的页眉工作正常。 我试图做同样的1间的区别,我想有些细胞在该表有行跨度和/或colspan属性。

我试过了,并且发现使用table.writeSelectedRows()不同于document.add(table) ,当涉及到Rowspan 。 这是我想要在做一个样品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());

和而不必与左2×2单元“你好”,我得到了“你好”小区的1x2 2x2的不

有任何想法吗?

Answer 1:

以及..我发现溶液自己: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();

这是它:) :)工作



Answer 2:

iText的writeSelectedRows不能与行跨度工作时,我使用iText的-2.1.7,该行跨度细胞不能生长到其他行,但它有一个解决方法。

ArrayList tmp = table.getRows(0, table.getRows().size());
table.getRows().clear();
table.getRows().addAll(tmp);
table.writeSelectedRows(0, -1, x, y, directContent);


文章来源: iText - PdfPTable RowSpan using mytable.writeSelectedRows
标签: java itext