当前位置: 首页 > 知识库问答 >
问题:

iText将大表嵌套在另一个表的单元格中

景温书
2023-03-14

在使用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);

共有1个答案

荣曾笑
2023-03-14

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

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

我很久以前在itext2.1.4中使用过它。所以请检查您当前的版本是否支持这些。(这就是为什么我要求使用itextversion)

 类似资料:
  • 新手上路,请多包涵 如图,这样一个表格单元格内容嵌套如何实现,求教大佬! UI库:antdVue3

  • 我试图创建一个嵌套表,该表与单元格的右边缘对齐,但尽管向包含单元格添加了,但它仍然保持在左侧。 灰色底纹显示表格和单元格的实际位置: 正在制作的内容: 所以基本上,我想问的是,我是否缺少了什么东西,可以使嵌套表正确地向右对齐。

  • 我想将table 1的内容复制到table 2中,但它不是直接复制,因为table 2包含的列比表1多。结构类似于这样: 表 1 { 列 2 列 4 列 6 } 表2{column1 column2 column3 column4 column5 column6} 我想做的是将table1到table2中的每一行相加,并为缺少的列设置默认值。任何帮助都将不胜感激。

  • antd的table中如何嵌套form.list, 这种要怎么画 目前没有思路

  • 假设我有一个这样的列表: 我想要一个只包含嵌套列表的第一个元素的列表。我可以通过这样返回另一个列表来做到这一点 这个有捷径符号吗?

  • 问题内容: 我正在尝试根据以下代码在使用itext的表格单元格中添加一些带有条形码的文本,但它不会显示在pdf文件中。我尝试添加块和段落。任何帮助,将不胜感激。 问题答案: 您可能对 文本 模式与 复合 模式感到困惑。 使用构造函数时,可以在 文本 模式下创建一个单元格。随后,对的任何后续调用都会将单元格切换到 复合 模式,从而删除先前在构造函数中输入的所有内容。 您必须以这种方式更改代码: