2012-12-03 141 views
1

我正在使用iText 5.1.3,並且我想爲我的Pdf文檔添加一個標題。我用已知的解決方案張貼在這裏:http://itextpdf.com/examples/iia.php?id=104iText -PdfPTable使用mytable.writeSelectedRows的RowSpan

該解決方案使用的PdfPageEventHelper類,並覆蓋的方法onEndPage()正好完成每一個頁面後添加標題。上面鏈接中提供的示例正常工作,因爲它將表添加爲文檔的標題。我試圖做一個完全相同的差異,我希望該表中的某些單元格具有Rowspan和/或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的不

有沒有想法?

回答

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(); 

就是這樣:) :)工作

當我使用iText的
0

iText的writeSelectedRows不ROWSPAN工作-2.1.7,rowSpan單元格不會增長到其他行,但它有一個解決方法。

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