Please see my comment to the question; why PDF?
First of all, you cannot just "convert" one to another. HTML and PDF concepts are totally different, so there is no any one-to-one correspondence and cannot be. HTML is content is fluid, its rendering depends on the size of the page, and PDF presents totally fixed layout, much like a paper printout. You can only create some particular mapping onto PDF based on some particular requirement. PDF will fix only one particular rendering with one particular paper size.
To work with PDF, you can use iText, or its .NET port, iTextSharp:
http://en.wikipedia.org/wiki/IText[
^],
http://itextpdf.com/[
^],
http://sourceforge.net/projects/itextsharp/[
^].
In included the reference to Java iText site as well, because most documentation is there. If you understand C#, it would not be difficult to understand Java-bases API documentation.
Just in case: PDF is not a part of W3 standards and may or may not be supported on client's browser. Such support is based on some plug-in implementation which may or may not be available. Moreover, you should not make an assumption that a local system has any PDF support at all. This is not a problem, because the browser can always fall back to saving a file in a local file system.
—SA