title: itext7 not creating new pdf-page automatically
body: <p>When I add multiple Tables to an iText7 pdf and the number of Tables are more than fits in one page the following exception gets thrown.</p>
  
  <blockquote>
    <p>Exception: "Object reference not set to an instance of an object."
    Source: "itext.layout" StackTrace: "at
    iText.Layout.Renderer.TableRenderer.Layout(LayoutContext
    layoutContext)
                 at iText.Layout.Renderer.RootRenderer.AddChild(IRenderer renderer)
                 at iText.Layout.RootElement<code>1.Add[T2](BlockElement</code>1 element)
                 at iText.Layout.Document.Add[T](BlockElement`1 element)
                 at iTextSharp7_Test.Controllers.PdfController.ReplicateBug(String
    pdfFile) in C:\Users\me\Documents\Visual Studio
    2015\Projects\App_Test\iTextSharp7_Test\Controllers\PdfController.cs:line
    443"</p>
  </blockquote>
  
  <p>In the provided example the exception gets thrown when the 6th table is about to be added.</p>
  
  <p>The only way I have been able to handle this issue is by assuming that the exception is thrown by adding more data to the pdf than fits in one page and add a new page within the try catch block, a solution that is very ugly and not good in the long term.</p>
  
  <p>Example:</p>
  
  <pre><code>public void ReplicateBug(string pdfFile)
  {
      iText.Kernel.Pdf.PdfWriter writer = null;
      iText.Kernel.Pdf.PdfDocument pdf = null;
      iText.Layout.Document document = null;
  
      try
      {
          writer = new iText.Kernel.Pdf.PdfWriter(pdfFile);
          pdf = new iText.Kernel.Pdf.PdfDocument(writer);
          document = new iText.Layout.Document(pdf, iText.Kernel.Geom.PageSize.A4);
          document.Add(new iText.Layout.Element.Paragraph("*** PRODUCTS ***"));
          iText.Kernel.Pdf.Canvas.Draw.DashedLine dashedLine = new iText.Kernel.Pdf.Canvas.Draw.DashedLine();
          document.Add(new iText.Layout.Element.LineSeparator(dashedLine));
  
          iText.Layout.Element.Table table = null;
  
          for (int i = 0; i &lt; 10; ++i)
          {
              iText.Layout.Element.Cell cell = null;
  
              table = new iText.Layout.Element.Table(2);
              table.SetMarginTop(10);
  
              cell = new iText.Layout.Element.Cell().Add("-- PRODUCT --");
              table.AddCell(cell);
              cell = new iText.Layout.Element.Cell(3, 1).Add("image");
              cell.SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER);
              cell.SetVerticalAlignment(iText.Layout.Properties.VerticalAlignment.MIDDLE);
              table.AddCell(cell);
              cell = new iText.Layout.Element.Cell().Add("Product text." + Environment.NewLine + "Welcome");
              cell.SetHeight(75);
              table.AddCell(cell);
              cell = new iText.Layout.Element.Cell().Add((i + 1).ToString().PadLeft(10, '0'));
              table.AddCell(cell);
  
              try
              {
                  document.Add(table);
                  document.Add(new iText.Layout.Element.LineSeparator(dashedLine));   // Default LineWidth is 1
              }
              catch
              {
                  // NOTE: After adding 5 tables to the pdf an exception is thrown of the following kind.
  
                  // Exception: "Object reference not set to an instance of an object."
                  // Source: "itext.layout"
                  // StackTrace: "at iText.Layout.Renderer.TableRenderer.Layout(LayoutContext layoutContext)
                  //              at iText.Layout.Renderer.RootRenderer.AddChild(IRenderer renderer)
                  //              at iText.Layout.RootElement`1.Add[T2](BlockElement`1 element)
                  //              at iText.Layout.Document.Add[T](BlockElement`1 element)
                  //              at iTextSharp7_Test.Controllers.PdfController.ReplicateBug(String pdfFile) in C:\\Users\\me\\Documents\\Visual Studio 2015\\Projects\\App_Test\\iTextSharp7_Test\\Controllers\\PdfController.cs:line 443"
              }
          }
  
          document.Close();
          pdf.Close();
          writer.Close();
      }
      catch
      {
          if (document != null)
          {
              document.Close();
          }
  
          if (pdf != null)
          {
              pdf.Close();
          }
  
          if (writer != null)
          {
              writer.Close();
          }
  
          throw;
      }
  }
  </code></pre>
  
  <p>Thanks in Advance</p>