Back in the IMS days I used a library called SharpPDF which worked great. You can get the library on sourceforge: http://sharppdf.sourceforge.net/
They have a .NET 2.0 version. Some of my projects are still using this and it works fine and is easy to implement.
I haven't done this with the JS API yet. But if it works anything like printing you will need to use the .Net printing solution for the js api to get the image and then use SharpPDF to create the PDF from there.