2013-05-13 108 views
2

我在iText中创建了一个列出日期事件的表格。如果日期有多个事件,我将date-cell的rowspan属性设置为事件数。我目前正在为每个事件使用一行,因为我想显示该事件的其他信息并希望保持对齐。 Basicly我的表可以是这样的:iText表格 - 如何在一页上保留多行单元格?

Date | Event  | Details 
--------+-----------+--------------- 
date 1 | event 1 | details 1 
--------+-----------+--------------- 
date 2 | event 2 1 | more 
     |   | details 2 1 
     +-----------+--------------- 
     | event 2 2 | details 2 2 
--------+-----------+--------------- 

date 2细胞具有2

一个行跨度我加在循环中使用ColumnText.go()表。

如果我将表格写入文档并且只有足够的空间用于event 2 1,则event 2 2将转到新页面。如何在添加date 2之前强制新页面?使用PdfPTable.setSplitLate(true)似乎不影响多行单元格。也没有将date 2单元的固定高度设置为两行的组合高度。

  • 一种解决方案将是使用嵌套表列2和3(和治疗柱2和3作为一列)

  • 另一种解决方案,即不能正确地在iText的版本一起我使用的是使用PdfPTable.writeSelectedRows()并只写出适合页面的(组合)行。问题是,这种方式忽略行跨度,并且单元格看起来像只跨越一行。

还有其他方法吗?

+0

当前iText中的一种可能的解决方案可能是'PdfPTable.keepRowsTogether(int [])' - 不幸的是它在iText版本中不可用,我必须使用 – Cryn 2013-05-14 09:05:27

+1

您正在使用哪个版本? – 2015-09-03 09:24:15

回答

1

您可以创建一个表的每一行,并使用PdfPTable.setKeepTogether(true)这甚至iText的2.1.7,虽然工作我不建议使用该版本住。下面是一个示例,其中outputFile是正在创建PDF文件的文件类型变量。

Document document = new Document(new Rectangle(620, 150)); 
PdfWriter.getInstance(document, new FileOutputStream(outputFile)); 

document.open(); 

PdfPTable headerRow = new PdfPTable(3); 
headerRow.setKeepTogether(true); 
headerRow.addCell("Date"); 
headerRow.addCell("Event"); 
headerRow.addCell("Details"); 

PdfPTable firstRow = new PdfPTable(3); 
firstRow.setKeepTogether(true); 
firstRow.addCell("date 1"); 
firstRow.addCell("event 2 1"); 
firstRow.addCell("more\ndetails 2 1"); 

PdfPTable secondRow = new PdfPTable(3); 
secondRow.setKeepTogether(true); 
PdfPCell cell = new PdfPCell(new Phrase("date 2")); 
cell.setRowspan(2); 
secondRow.addCell(cell); 
secondRow.addCell("event 2 1"); 
secondRow.addCell("more\ndetails 2 1"); 
secondRow.addCell("event 2 2"); 
secondRow.addCell("details 2 2"); 

document.add(headerRow); 
document.add(firstRow); 
document.add(secondRow); 

document.close(); 

老实说,我认为嵌套表是更好的主意。

+0

与这个问题无关,如果您使用的是iText 2.1.7,我会在这里查看http://itextpdf.com/tags/itext-217阅读关于该特定版本的更多信息。 – 2016-02-16 22:22:54

相关问题