I used iTextSharp to create PDF reports before. Although you have to get used to the library (and this is an extensive library), once you master it, it is not so bad. I found the iText In Action book very useful. Although the book focuses on the Java source library, not the .NET port, most methods and classes are named the same, so there were no problems.
My # 1 tip when working with iTextSharp is that you will write a lot of the same code over and over again. (i.e. creating a table cell, setting fonts, sizes, colors and borders for this table cell, setting text ...). Do yourself a favor and create your own little Utility class that will do all your work, otherwise you will get 2,000 lines of code that simply create some tables with some special formatting.
There is also a series of short articles on this site that I found useful when I first studied iTextSharp.
Edit:
If you are interested in XHTML -> PDF Converter, I just found this blog post by Darin Dimitriov , which shows how to port the open-source Java library with flying saucers to .NET. He makes it look easy!
Interestingly, it seems that the flying saucer uses iText under the hood to perform the conversion.
source share