【问题标题】:iText Document Vertical AlignmentiText 文档垂直对齐
【发布时间】:2011-11-25 23:55:03
【问题描述】:

我正在尝试将文档中的表格垂直对齐到页面底部。

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

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

谢谢

【问题讨论】:

    标签: java pdf alignment itext


    【解决方案1】:

    经过多天的搜索......我的解决方案是将我的表格包装在一个带有 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;
    }
    

    【讨论】:

    • 为什么最后会出现空白页?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    相关资源
    最近更新 更多