I use ABCpdf to do this sort of thing...
I write the "piece" of the web-page that I'm wanting printed to PDF to a Session variable, and then I use the ABCpdf component to create the PDF when the button is clicked... (it can do the entire page too, if you want to...)
ABCpdf is available from: http://www.websupergoo.com/abcpdf-1.htm
Espavo