By nature of the task (HTML to PDF conversion) pretty looking PDF generation tool should able to render HTML like web-browser. Fortunately it is already exists: WkHtmlToPdf open source project but it doesn't provide any integration with .NET from the box.
Don't spend your time on reinventing the wheel: I've already packed WkHtmlToPdf into one DLL (no external dependencies at all), just add it to your project and generate PDF with one line of code:
var pdfBytes = (new NReco.HtmlToPdfConverter()).GeneratePdf(htmlContent);
Additionally, it's possible to specify various options (like margins, zoom-factor etc) through HtmlToPdfConverter's properties.
DLL can be downloaded here (it's FREE): PdfGenerator for .NET