2009-11-19 158 views
0

我正在使用iTextsharp从C#应用程序生成PDF文档。我有一个PdfPTable来显示一些表格数据。我在桌上的问题与另一段重叠。无论如何,我可以把桌子放在特定的位置上吗?然后下面是我的代码iTextSharp: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)与重叠第一个

谁能告诉我如何摆脱这个问题?

回答

2

您的代码没有指定objMasterDetailsPara的内容。我认为它是在别处定义的。

我看到的一个问题是,您的标题单元格(objCell0 ... 5)实际上从未添加到PDF文档中。如果objMasterDetailsPara应该包含这个列标题信息,那将解释你的问题。看起来第二段与第一段重叠,实际上第一段的最后一部分从未真正添加到pdf文档中。