Q:

How to generate text box with max height in iTextSharp (auto-grow?) 

We have a vehicle "Description" that could be anywhere from a few words to a few paragraphs.  It needs to not go beyond a certain height (like 100px or whatever).  Perfect solution would allow the text box to auto-grow (i.e. be as small as possible, but be able to grow up to a max height).  There doesn't seem to be a way to restrict the height of a Paragraph or Phrase or anything.  I have been messing with ColumnText but I can't seem to figure out how to make a ColumnText go into the flow of the document, so the next element after the Description goes below it and not on top of it.  I have also seen ct. SetTextMatrix(xPos, yPos), but that still doesn't get me a max height box.  Have I just not found what I'm needing yet, or does it not exist in iTextSharp? 

A:

Thank you so much, @Chris Haas!  My solution was eventually found by the link he posted. 
First, at the top of the page, we do the table height calculation:
PdfPTable tempTable = new PdfPTable(1);
tempTable. SetTotalWidth(new float[] { 540 }); //540 is width of PageSize. LETTER minus 36*2 for margins
string itemDescription = item. Description;
tempTable. AddCell(itemDescription);
float descriptionTableHeight = CalculatePdfPTableHeight(tempTable);

Then, the code for actually generating the PDF:
using (MemoryStream ms = new MemoryStream())
{
    using (Document document = new Document(PageSize. LETTER))
    {
        using (PdfWriter writer = PdfWriter. GetInstance(document, ms))
        {
            document. Open();

            //document properties
            float margin = 36f;
            document. SetMargins(margin, margin, margin, margin);

            document. NewPage();

            //description
            customFont = FontFactory. GetFont("Helvetica", 10);
            Phrase description = new Phrase(itemDescription, customFont);

            table = new PdfPTable(1);
            table. WidthPercentage = 100;
            cell = new PdfPCell(description);
            cell. Border = 0;
            float maxHeight = 98f;
            if (descriptionTableHeight > maxHeight)
                cell. FixedHeight = maxHeight;
            table. AddCell(cell);
            document. Add(table);
        }
    }
}

So since we now have the table's height, we can check to see if it is greater than a maximum value and set the FixedHeight of the cell if so.  And since we are able to add the table to the document, it goes in the normal flow of the page. 
Thanks to the commenters for the leads!