Please take a look at the following screen shot:
To the left, you see an HTML file rendered in a browser. To the right, you see that HTML file rendered to PDF using iText (the Java version).
There are three reasons why your application doesn't work:
<br />, introduce the correct CSS, correct the column-count for some rows,...) and make it XHTML before it rendered correctly in a browser. You can find the HTML that was used in the screen shot here: table2_css.html
HTMLWorkerinstead of XML Worker, and you are right:
HTMLWorkerhas no support for CSS. Saying CSS doesn't work in iTextSharp is wrong. It doesn't work when you use
HTMLWorker, but that's documented: the CSS you need works in XML Worker.
Apart from iTextSharp, you also need to download XML Worker. Most of the examples on the web site are written in Java, but you should have no problem converting them to C#. The example I used to make the PDF in the screen shot (html_table_4.pdf) can be found here: ParseHtmlTable4