iTextSharp: pdfPTable перекрывается с другим контентом - PullRequest
0 голосов
/ 19 ноября 2009

Я использую iTextsharp для создания PDF-документа из приложения C #. У меня есть 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) перекрывается с первым

Может кто-нибудь сказать мне, как избавиться от этой проблемы?

1 Ответ

2 голосов
/ 25 ноября 2009

Ваш код не указывает содержимое objMasterDetailsPara. Я предполагаю, что это определено в другом месте.

Одна проблема, которую я вижу, состоит в том, что ваши ячейки заголовка (objCell0 ... 5) фактически никогда не добавляются в документ PDF. Если objMasterDetailsPara должен содержать эту информацию заголовка столбца, это объяснит вашу проблему. Казалось бы, второй абзац перекрывает первый, хотя на самом деле последняя часть первого абзаца так и не была добавлена ​​в документ pdf.

...