【问题标题】:iText nested large table inside a cell of another tableiText 将大表格嵌套在另一个表格的单元格内
【发布时间】:2012-12-20 09:47:52
【问题描述】:

在我使用 Itext 的 Java 项目中,我正在创建一个 pdf 文件,在此我将在另一个表的单元格内插入一个更大的表。

当表格的内容大于一页时,我遇到了问题,表格被带到下一页。相反,我想要上一页中的部分数据,只有超出页面的数据需要转到下一页。

如何实现,下面是我使用的代码。

        PdfPTable outerTable = new PdfPTable(2); 
        outerTable.setHeaderRows(1);
        outerTable.setSpacingBefore(20);
        outerTable.setWidthPercentage(100);

        Phrase str_head = new Phrase("Sample Image \n", subFont);
        Phrase act_head = new Phrase("Steps \n", subFont);

        PdfPCell cell2;
        cell2 = new PdfPCell(act_head); 
        outerTable.addCell(cell2); 

        cell2 = new PdfPCell(str_head);
        cell2.setBorder(Rectangle.NO_BORDER);
        outerTable.addCell(cell2);

       /* content row*/

        cell2 = new PdfPCell("-----Sample-------");
        cell2.setBorder(Rectangle.NO_BORDER);
        outerTable.addCell(cell2);


        PdfPTable innerTable = new PdfPTable(2);
        ---------------
        ---------------
        innerTable.add("XXX")//add more rows in so that page will overlow
        ---------------
        ---------------

        cell2 = new PdfPCell(innerTable);
        cell2.setBorder(Rectangle.NO_BORDER);
        outerTable.addCell(cell2);

【问题讨论】:

  • 设置PdfPTable的SplitRows。

标签: java pdf-generation itextsharp itext


【解决方案1】:

如果我知道您使用的是哪个 itext 版本,那就很简单了。有两个属性setSplitLate(false),setSplitRows(true)。所以你必须为这两个表设置这些属性。请参阅文档以了解更多信息。代码看起来更像:

outerTable.setSplitLate(false);
innerTable.setSplitLate(false);
outerTable.setSplitRows(true);
innerTable.setSplitRows(true);

我很久以前在 itext 2.1.4 中使用过它。所以请检查您当前的版本是否支持这些。(这就是我要求使用 itext 版本的原因

【讨论】:

    猜你喜欢
    • 2010-11-23
    • 2020-05-11
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 2021-02-20
    相关资源
    最近更新 更多