iTextSharp "Wrong number of Colums" 每次

iTextSharp "Wrong number of Colums" every Time

这是我的代码:

base.OnEndPage(pdfwriter, document);
PdfPTable Fusszeile = new PdfPTable(3);
Fusszeile.SetTotalWidth(new float[] { iTextSharp.text.PageSize.A4.Rotate().Width - 25 });

PdfPCell linkeZelle = new PdfPCell(new Phrase("----------------"));
Fusszeile.AddCell(linkeZelle);

PdfPCell mittleZelle = new PdfPCell(new Phrase("--------------"));
Fusszeile.AddCell(mittleZelle);

PdfPCell rechteZelle = new PdfPCell(new Phrase("-------------------"));
Fusszeile.AddCell(rechteZelle);

Fusszeile.WriteSelectedRows(0, -1, 25, document.Bottom, pdfwriter.DirectContent);

我在 Table 上设置了 3 列,我添加了 3PdfPCell 并且每次我得到错误 Wrong number of Colums .

为什么?

由于您要添加的单元格数量,未引发异常。抛出异常是因为您没有正确定义列宽:

PdfPTable Fusszeile = new PdfPTable(3);
Fusszeile.SetTotalWidth(new float[] { iTextSharp.text.PageSize.A4.Rotate().Width - 25 });

如果将数组传递给 SetTotalWidth() 方法,则该数组中的元素数需要与列数匹配。

如果要定义整个table的总宽度,需要这样使用SetTotalWidth()方法:

Fusszeile.SetTotalWidth(PageSize.A4.Rotate().Width - 25);

如果你想定义不同列的宽度,或者像这样:

Fusszeile.SetTotalWidth(new float[] { 
     (iTextSharp.text.PageSize.A4.Rotate().Width - 25) / 2,
     (iTextSharp.text.PageSize.A4.Rotate().Width - 25) / 4,
     (iTextSharp.text.PageSize.A4.Rotate().Width - 25) / 4
});

请注意,我现在定义 3 列的宽度。第一列占总宽度的一半,第二列和第三列占宽度的四分之一。

重要提示:如果不锁定宽度,您定义的总宽度将被忽略。