Another approach in creating PDF documents in code is the XSL transformation with Formatting Objects Processor (FOP). NFop is .Net port of Java FOP library.
FOP (Formatting Objects Processor) is a tool for formatting of impression controlled by XSL. It is an application which reads a tree of objects of formatting and which generates the resulting pages in a given format. For the moment the formats of returned according to are supported: Pdf, PCL, PS, SVG, XML, Print, AWT, MIF and TXT. pdf being the format of predilection.