我正在构建一个调查应用程序。我现在被困住的地方是我的客户需要根据调查结果创建最终报告的打印输出。所以他希望将他的报告转换为PDF。我使用了iTextSharp。问题是当我在有限数量的字段中尝试我的PDF生成算法时,一切都仍然是我想要的。但随着桌子变大,请说50个字段,表格排序扭曲。这是我的算法。
我有一个PdfPTable mainTable
,其中包含以下属性:
PdfPTable mainTable = new PdfPTable(1);
mainTable.WidthPercentage = 100;
//mainTable.TotalWidth = 500f; //I tried increasing its total width but no use.
mainTable.TotalWidth = 100f;
mainTable.LockedWidth = true;
mainTable.DefaultCell.Border = 0;
接下来我有headerTable
,它顶部有两个图像和一个欢迎线:
PdfPTable headerTable = new PdfPTable(2);
headerTable.TotalWidth = 500f;
headerTable.DefaultCell.Border = 0;
headerTable.LockedWidth = true;
float[] widths = new float[] { 250f, 250f };
headerTable.SetWidths(widths);
添加文字和其他内容后,我将标题表添加到mainTable
:
mainTable.AddCell(headerTable);
现在问题就出现了。我创建了另一个名为dataTable
的表。该表包含所有字段。
PdfPTable DataTable = new PdfPTable(2);
DataTable.TotalWidth = 500f;
DataTable.DefaultCell.Border = 0;
DataTable.LockedWidth = true;
widths = new float[] { 200f, 300f };
DataTable.SetWidths(widths);
最后在我添加了大量单元后,我将此表添加到上面的主表中。问题是dataTable
中的所有格式都是完美的,但是只要我有大数据,第一页只包含mainTable第一页中的headerTable之前的数据。数据表打印在下一页。我尝试了很多东西,但无法弄清问题在哪里。任何帮助将不胜感激。
先谢谢大家!