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
列,我添加了 3
次 PdfPCell
并且每次我得到错误 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 列的宽度。第一列占总宽度的一半,第二列和第三列占宽度的四分之一。
重要提示:如果不锁定宽度,您定义的总宽度将被忽略。
这是我的代码:
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
列,我添加了 3
次 PdfPCell
并且每次我得到错误 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 列的宽度。第一列占总宽度的一半,第二列和第三列占宽度的四分之一。
重要提示:如果不锁定宽度,您定义的总宽度将被忽略。