java - iText - PdfPTable RowSpan 使用 mytable.writeSelectedRows

标签 java itext

我正在使用 iText 5.1.3,我想在我的 Pdf 文档中添加一个标题。我使用了此处发布的已知解决方案:http://itextpdf.com/examples/iia.php?id=104

此解决方案使用了 PdfPageEventHelper 类,并覆盖了方法 onEndPage() 以在完成每一页后添加页眉。上面链接中提供的示例工作正常,因为它添加了一个表格作为文档的标题。我正在尝试做完全相同的事情,但有 1 个不同,我希望该表中的某些单元格具有 Rowspan 和/或 Colspan。

我试过了,发现在 Rowspan 方面,使用 table.writeSelectedRows()document.add(table) 不同。这是我在 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,而是 1x2 而不是 2x2,而是左侧的单元格是 2x2

有什么想法吗?

最佳答案

好吧 .. 我自己找到了解决方案 :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();

就是这样 :) 成功了 :)

关于java - iText - PdfPTable RowSpan 使用 mytable.writeSelectedRows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13679178/

相关文章:

java - 在 Exception 上转储变量状态

pdf - iTextSharp - 将 word doc/docx 转换为 pdf

java - 使用 ITextPDF 保存 PDF 文件

java - Log4j2:重定向类及其调用链的日志记录语句

java - 如何在 JOptionPane.showConfirmDialog 的组件上请求焦点?

java - C 服务器到 Java 客户端套接字读取以短值传递

java - 如何嵌套复杂的Swing组件

java - iText PdfTextExtractor getTextFromPage 异常 "Error reading string at file pointer"

c# - ITextSharp : Specify HTML Classes or ID CSS

java - 使用 ITEXT 在 PDF 中显示页码