这是我的代码:
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);
我在表格中设置了3
列,我将3
次添加PdfPCell
,并且每次收到错误Wrong number of Colums
。
为什么?
答案 0 :(得分:3)
由于您要添加的单元格数量,因此不会抛出异常。抛出异常是因为您没有正确定义列宽:
PdfPTable Fusszeile = new PdfPTable(3);
Fusszeile.SetTotalWidth(new float[] { iTextSharp.text.PageSize.A4.Rotate().Width - 25 });
如果将数组传递给SetTotalWidth()
方法,则该数组中的元素数量需要与列数相匹配。
如果要定义整个表的总宽度,则需要像这样使用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 列的宽度。第一列占总宽度的一半,第二列占第三列宽度的四分之一。
重要提示:如果您没有锁定宽度,则忽略您定义的总宽度。