Note that there are some explanatory texts on larger screens.

plurals
  1. POItextSharp nested table on multiple pages causes NullReferenceException
    primarykey
    data
    text
    <p>I am getting a NullReferenceException when the following code is executed. I have also noticed that the nested table appeared on a new page when I added in the code that wrote cells to the main table. It doesn't occur if I take out the two loops that write cells to the main table.</p> <pre><code>&lt;%@ Page Title="" Language="C#" MasterPageFile="~/Main.master" %&gt; &lt;%@ Import Namespace="iTextSharp.text" %&gt; &lt;%@ Import Namespace="iTextSharp.text.pdf" %&gt; &lt;%@ Import Namespace="System.IO" %&gt; &lt;script runat="server"&gt; protected void Page_Load(object sender, EventArgs e) { Document doc = new Document(PageSize.LETTER); // Here is some stuff needed to put the pdf into the users response stream Response.Clear(); Response.ContentType = "application/pdf"; MemoryStream memoryStream = new MemoryStream(); PdfWriter writer = PdfWriter.GetInstance(doc, memoryStream); writer.CloseStream = false; // This is important, but it may work without it doc.SetMargins(20, 20, 36, 10); // write stuff to the documents doc.Open(); doc.Add(GenerateNestedTableTest()); doc.Close(); // Now that all writing to the document is done lets send it to the user writer.Flush(); Response.OutputStream.Write(memoryStream.GetBuffer(), 0, memoryStream.GetBuffer().Length); Response.OutputStream.Flush(); Response.OutputStream.Close(); Response.End(); } private PdfPTable GenerateNestedTableTest() { PdfPTable mainTable = new PdfPTable(5); // test adding cells to mainTable in groups of 5 for (int i = 0; i &lt;= 5 * 10; ++i) { PdfPCell mainTableCell = new PdfPCell(new Phrase("Test")); mainTable.AddCell(mainTableCell); } PdfPTable nestedTable = new PdfPTable(3); Font TitleFont = new Font(null, 20, Font.BOLD, Color.BLACK); PdfPCell TitleCell = new PdfPCell(new Phrase("This is the header of the nested table", TitleFont)); TitleCell.Colspan = 3; nestedTable.AddCell(TitleCell); string[] headers = new string[] { "Header1", "Header2", "Header3" }; foreach (string header in headers) { PdfPCell HeaderCell = new PdfPCell(new Phrase(header, new Font(null, 14, Font.BOLD, Color.BLUE))); HeaderCell.HorizontalAlignment = Element.ALIGN_CENTER; nestedTable.AddCell(HeaderCell); } for (int i = 0; i &lt;= 3*556; ++i) { nestedTable.AddCell(new Phrase("Test Cell")); } PdfPCell nestedTableCell = new PdfPCell(nestedTable); nestedTableCell.Colspan = 4; mainTable.AddCell(new PdfPCell()); mainTable.AddCell(nestedTableCell); // test adding cells to mainTable in groups of 5 for (int i = 0; i &lt;= 5 * 10; ++i) { PdfPCell mainTableCell = new PdfPCell(new Phrase("Test")); mainTable.AddCell(mainTableCell); } return mainTable; } &lt;/script&gt; &lt;asp:Content ID="Content1" ContentPlaceHolderID="PageHeadContentPlaceHolder" Runat="Server"&gt; &lt;/asp:Content&gt; &lt;asp:Content ID="Content2" ContentPlaceHolderID="PageTitleContentPlaceHolder" Runat="Server"&gt; &lt;/asp:Content&gt; &lt;asp:Content ID="Content3" ContentPlaceHolderID="PageBodyContentPlaceHolder" Runat="Server"&gt; &lt;/asp:Content&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload