NET中iText的嵌套表问题

时间:2018-08-07 09:34:50

标签: itext itext7

我在我的.net应用程序中使用iText 7.0.4.0生成pdf。但是当文本很长时,内部表就会溢出。

外面的表有10列带有绿色边框的列,按照下面的图片,它看起来已经很好了。每个外部表单元格都包含一个表,内部有一个单元格。但是当段落文本较大时,内部表单元格就会溢出。

我在大型Forms建筑产品中使用iText。因此,我已经用简单的场景重新创建了问题,下面给出了代码。请注意,实际使用中的列数不是固定的。

有人可以告诉我实现这一目标的正确方法吗?

enter image description here

这是C#代码

private Table OuterTable()
{
    var columns = GetTableColumnWidth(10);
    var outerTable = new Table(columns, true);
    outerTable.SetWidthPercent(100);

    for (int index = 0;   index < columns.Length; index++)
    {
        Cell outerTableCell = new Cell();

        Table innerTable = new Table(new float[] { 100 });
        innerTable.SetWidthPercent(100);
        Cell innerTableCell = new Cell();
        Paragraph paragraph = new Paragraph("ABCDEFGHIJKL").AddStyle(_fieldValueStyle);

        innerTableCell.Add(paragraph);
        innerTable.AddCell(innerTableCell);

        outerTableCell.Add(innerTable);
        outerTable.AddCell(outerTableCell);

        innerTableCell.SetBorder(new SolidBorder(Color.RED, 2));
        innerTableCell.SetBorderRight(new SolidBorder(Color.BLUE, 2));
        outerTableCell.SetBorder(new SolidBorder(Color.GREEN, 2));
    }

    return outerTable;
}

1 个答案:

答案 0 :(得分:1)

感谢mkl花费您宝贵的时间。我以您“没有内部表”的想法解决了我的问题。这不是解决问题中提到的嵌套表问题的方法,而是获得结果的另一种方法。

我在段落中使用“ \ n”来实现我想要的。这是输出和代码。 enter image description here

CalculatorClientCallback