2016-11-04 2 views
1

Я пытаюсь создать генератор pdf, который имеет некоторый текст в верхней и нижней части страницы со столом в середине. В таблице задана длина строки. Все работает, за исключением того, что таблица PdfPTable сохраняет значения ранее добавленных строк, поэтому, когда я выхожу на вывод pdf, она сохраняет последнюю таблицу. Есть ли способ добавить новую таблицу с той же переменной или очистить текущую переменную?itextsharp многостраничный стол с текстом заголовка и нижнего колонтитула

  doc.Open(); 

      Paragraph header = new Paragraph("header"); 
      header.Alignment = Element.ALIGN_CENTER; 
      Paragraph footer = new Paragraph("footer"); 
      footer.Alignment = Element.ALIGN_CENTER; 

      PdfPTable table = new PdfPTable(3); 
      table.LockedWidth = true; 
      table.SetWidths(widths); 
      table.HorizontalAlignment = 0; 

      foreach (T t in results) 
      { 
       if (counter % 50 == 0) 
       { 
        if (counter != 0) 
        { 
         doc.Add(table); 
         doc.Add(footer); 
         doc.NewPage(); 
        } 
        doc.Add(header); 
        table.AddCell("Name"); //Table Header 
        table.AddCell("Address"); //Table Header 
        table.AddCell("Phone"); //Table Header 

       } 
        table.AddCell("First Last"); //individual cell from t.name 
        table.AddCell("Address"); //individual cell from t.address 
        table.AddCell("Phone"); //individual cell from t.phone 
      } 
      doc.Add(table); 
      doc.Add(footer); 
      doc.Close(); 
+0

Ваш код очень странно. Откуда у вас было вдохновение? Вы читали о событиях страницы, чтобы добавить верхние и нижние колонтитулы? Вы читали о табличных заголовках и нижних колонтитулах? Также: почему вы удивлены тем, что таблица сохраняет свои строки, если вы продолжаете использовать один и тот же экземпляр таблицы? –

+0

Вы не увеличиваете счетчик в любом месте. Я хочу исправить ваш код, но я понятия не имею, что должен делать ваш код. Не увеличивать счетчик не имеет смысла. Для чего нужна переменная 'counter'? –

+0

Как будто вы прочитали что-то об использовании 'PdfPTable' как' LargeElement', но не поняли, что это значит. –

ответ

1

Я был в состоянии понять это, просто добавив: table = new PdfPTable(5); внутри если заявление if (counter != 0)

+0

Кажется, трудно поверить, что это решает проблему, но если вы так говорите ... –

Смежные вопросы