2009-11-19 71 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文檔中。