C# 表格标题单元格有一条特征线,其他标题不带';不要改变他们的身高

C# 表格标题单元格有一条特征线,其他标题不带';不要改变他们的身高,c#,pdf,itext,itext7,C#,Pdf,Itext,Itext7,我在页眉单元格中添加了一个大文本,而表格的另一个单元格不会改变它们的高度 这是我的表的代码,我应该添加什么 Table tblChcklist = new Table(UnitValue.CreatePercentArray(new float[] { 4, 35, 20, 20, 20 })).SetVerticalAlignment(VerticalAlignment.MIDDLE).SetHorizontalAlignment(iText.Layout.Properties.Horizon

我在页眉单元格中添加了一个大文本,而表格的另一个单元格不会改变它们的高度

这是我的表的代码,我应该添加什么

Table tblChcklist = new Table(UnitValue.CreatePercentArray(new float[] { 4, 35, 20, 20, 20 })).SetVerticalAlignment(VerticalAlignment.MIDDLE).SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER).UseAllAvailableWidth().SetFont(PdfFontFactory.CreateFont(StandardFonts.HELVETICA, PdfEncodings.WINANSI, false));
tblChcklist.SetKeepTogether(true).SetFontSize(10).SetFixedLayout();
tblChcklist.AddHeaderCell(handler.getCell(2, 1, "No.", TextAlignment.CENTER).SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER).SetVerticalAlignment(VerticalAlignment.MIDDLE));
tblChcklist.AddHeaderCell(handler.getCell(2, 1, $"Seccion {dtPreguntas.Rows[0]["nombreSeccion"] }", TextAlignment.LEFT).SetBold());
tblChcklist.AddHeaderCell(handler.getCell(0, 0, "Si", TextAlignment.CENTER));
tblChcklist.AddHeaderCell(handler.getCell(0, 0, "No", TextAlignment.CENTER));
tblChcklist.AddHeaderCell(handler.getCell(0, 0, "No Aplica", TextAlignment.CENTER));
这是handle.getCell方法

public Cell getCell(int rowspan,int colspan,String text, TextAlignment alignment)
{
    Cell cell = new Cell(rowspan,colspan).Add(new Paragraph(text));
    cell.AddStyle(new Style().SetBorderBottom(new SolidBorder(ColorConstants.BLACK,0)));
    cell.AddStyle(new Style().SetBorderTop(new SolidBorder(ColorConstants.BLACK, 0)));
    cell.SetPadding(0);
    cell.SetTextAlignment(alignment);
    cell.SetKeepTogether(true);
    return cell;
}

如果我理解正确,您不希望看到以下空格(以黄色突出显示):

然而,这并不是什么奇怪的空间,而是第二行的单元格所在的位置,它们还没有被添加。发生这种情况是因为您添加了第一个(“否”)和第二个(“Seccion…”)单元格的行跨度为2,因此它们占用了两行的空间。但是,您仅通过添加5个单元格来填充第一行,因此第二行是空的,因此您可以在那里看到一些空间


因此,这里有两种解决方案:要么添加更多单元格(如果您有意),要么不将前两个单元格的rowspan值设置为2。我相信后一种情况应该是这样的,因为如果我理解了您共享的代码段的意思,那么这个大的rowspan设置错误。

谢谢,我只是将第二列的rowspan和colspan更改为0,它就工作了。太好了!另外(因为我没有提到它),iText中的最小rowspan和colspan值是1。如果调试构造函数,您将看到它:``公共单元格(introwspan,intcolspan){this.rowspan=Math.max(rowspan,1);this.colspan=Math.max(colspan,1);}```