2011-09-27 117 views
3

我想将我的文档中的表格垂直对齐到页面的底部。iText文档垂直对齐

我已经将表的垂直对齐设置为BOTTOM,但这只是使单元格与表本身的底部对齐。

如何使文档本身垂直对齐底部?

感谢

回答

8

搜索的很多天以后。我的解决办法是缠上了我的表外表1个细胞。将单元格设置为页面高度减去两个边距并将垂直对齐设置为底部。将您想要的所有内容添加到此表中。

全例如,为了简洁省略错误代码

public void run() { 
    try { 
     Document document = new Document(PageSize.LETTER, 10.0f, 10.0f, 36.0f, 36.0f); 
     PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream("test.pdf")); 
     document.open(); 

     PdfPTable outerTable = new PdfPTable(1); 
     outerTable.setWidthPercentage(100.0f); 

     PdfPCell cell = new PdfPCell(); 
     cell.setMinimumHeight(document.getPageSize().getHeight() - 36.0f - 36.0f); 
     cell.setVerticalAlignment(Element.ALIGN_BOTTOM); 
     cell.addElement(createTable()); 

     outerTable.addCell(cell); 
     document.add(outerTable); 
     document.newPage(); 
     document.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

public PdfPTable leftTable() { 
    PdfPTable table = new PdfPTable(1); 
    for (int i = 0; i < 50; i++) { 
     table.addCell("Cell: " + i); 
    } 
    return table; 
} 

public PdfPTable middleTable() { 
    PdfPTable table = new PdfPTable(1); 
    for (int i = 0; i < 10; i++) { 
     table.addCell("Cell: " + i); 
    } 
    return table; 
} 

public PdfPTable rightTable() { 
    PdfPTable table = new PdfPTable(1); 
    for (int i = 0; i < 100; i++) { 
     table.addCell("Cell: " + i); 
    } 
    return table; 
} 

public PdfPTable createTable() { 
    PdfPTable table = new PdfPTable(3); 

    table.getDefaultCell().setVerticalAlignment(Element.ALIGN_BOTTOM); 
    table.addCell(leftTable()); 
    table.addCell(middleTable()); 
    table.addCell(rightTable()); 

    return table; 
}