iTextSharp" Colums数量错误"每次

时间:2015-06-29 07:44:36

标签: itextsharp

这是我的代码:

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

为什么?

1 个答案:

答案 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 列的宽度。第一列占总宽度的一半,第二列占第三列宽度的四分之一。

重要提示:如果您没有锁定宽度,则忽略您定义的总宽度。