I'm not sure if this is in the right forum since it concerns iTextSharp in my C# app.

I have created a PDF form which is supposed to be printed out and signed by various people. I have tried to create a box in iTextSharp containing a couple of lines next to each other where people can sign their names and underneath each line the name of the person in question is dynamically displayed. I have been fiddling around with cells, changing borders and stuff to try to recreate these lines in the right place, but there must be a faster/better way? Does a template signing box already exist that I could implement?

As you can see my current code is very messy and the cells arent positioning themselves next to each other like I wanted (I wanted 3 cells next to each other each of colspan 2):

Code:
            Phrase date = new Phrase(SData.sCurrentDate, fontDetails);
            Phrase signAdvisor = new Phrase("Beurteiler", fontDetails);
            Phrase signTrainee = new Phrase("Auszubildender", fontDetails);
            Phrase signInstructor = new Phrase("Ausbildungsleitung", fontDetails);

            Phrase advisorName = new Phrase("( " + advisor.Firstname + " " + advisor.Surname + " )", fontDetails);
            Phrase traineeName = new Phrase("( " + trainee.Firstname + " " + trainee.Surname + " )", fontDetails);
            //Phrase instructorName = new Phrase("( " + trainee. + " )", fontDetails);

            PdfPTable tblSignature = new PdfPTable(1);
            PdfPCell cellHeader = new PdfPCell(new Phrase("Ich habe von der Beurteilung Kenntnis genommen:", fontBody));
            PdfPCell cellSignature = new PdfPCell();
            PdfPCell cellSigned = new PdfPCell();
            PdfPCell cellBlank = new PdfPCell(new Phrase("", fontTitle));

            // line 1
            cellHeader.Colspan = 6;
            cellHeader.BorderWidthBottom = 0;
            cellHeader.HorizontalAlignment = 0;
            cellHeader.BorderWidthBottom = 0;

            // line 2
            cellBlank.Colspan = 6;
            cellBlank.Border = 0;

            // line 3
            cellSignature.BorderWidthTop = 0;
            cellSignature.BorderWidthBottom = 1;
            cellSignature.BorderWidthLeft = 1;
            cellSignature.Colspan = 6;
            cellSignature.AddElement(date);

            // line 4
            cellSigned.Colspan = 6;
            cellSignature.BorderWidthTop = 0;
            cellSigned.BorderWidthBottom = 1;
            cellSigned.AddElement(signAdvisor);
            cellSigned.AddElement(advisorName);
            cellSigned.AddElement(signTrainee);
            cellSigned.AddElement(traineeName);
            cellSigned.AddElement(signInstructor);

            // add to doc
            tblSignature.AddCell(cellHeader);
            tblSignature.AddCell(cellBlank);
            tblSignature.AddCell(cellSignature);
            tblSignature.AddCell(cellSigned);
            doc.Add(tblSignature);