我正在使用iTextsharp从C#应用程序生成PDF文档。我有一个PdfPTable来显示一些表格数据。表中我的问题与另一段重叠。无论如何,我可以将表放在特定位置吗?然后下面是我的代码
PdfPTable objTable = new PdfPTable(6);
objTable.DefaultCell.Padding=1;
objTable.DefaultCell.BorderColor = new Color(123, 123, 163);
objTable.DefaultCell.Padding = 1;
float[] headerwidths = { 12,18,25,20,6,17 }; // percentage
objTable.SetWidths(headerwidths);
objTable.WidthPercentage = 80; // percentage
System.Drawing.Color objColor=System.Drawing.ColorTranslator.FromHtml("#EEEEEE");
PdfPCell objCell0 = new PdfPCell(new Phrase("SlNo"));
PdfPCell objCell1 = new PdfPCell(new Phrase("Date"));
PdfPCell objCell2 = new PdfPCell(new Phrase("Expense name"));
PdfPCell objCell3 = new PdfPCell(new Phrase("Budgeted value"));
PdfPCell objCell4 = new PdfPCell(new Phrase("Units"));
PdfPCell objCell5 = new PdfPCell(new Phrase("Total submitted"));
//Add child rows with data
List<SubmitExpenseItem> objItemList=objExpense.ExpenseChildItems;
foreach (SubmitExpenseItem expChildItem in objItemList)
{
slno++;
objTable.AddCell(new PdfPCell(new Phrase(slno.ToString())));
objTable.AddCell(new PdfPCell(new Phrase(expChildItem.SubmitDate.ToShortDateString())));
objTable.AddCell(new PdfPCell(new Phrase(expChildItem.ExpenseName)));
objTable.AddCell(new PdfPCell(new Phrase(expChildItem.BudgetValue.ToString())));
objTable.AddCell(new PdfPCell(new Phrase(expChildItem.Units.ToString())));
objTable.AddCell(new PdfPCell(new Phrase(expChildItem.ActualValue.ToString())));
}
objChildInfoPara.Add(objTable);
objDoc.Add(objMasterDetailsPara);//First para
objDoc.Add(objChildInfoPara);
现在我的第二段(objChildInfoPara)与第一段
重叠谁能告诉我如何摆脱这个问题?
答案 0 :(得分:2)
您的代码未指定objMasterDetailsPara的内容。我认为它是在其他地方定义的。
我看到的一个问题是你的标题单元格(objCell0 ... 5)从未实际添加到pdf文档中。如果objMasterDetailsPara应该包含此列标题信息,那将解释您的问题。看起来第二段与第一段重叠,实际上第一段的最后一部分从未实际添加到pdf文档中。