OK, well, there are several free programs that can produce PDFs out of anything you can print: eg PDFCreator or CutePDF.
Something on the server side would certainly be possible using free PDF libraries that exist but very complex because we need to draw the whole page ourselves (instead of the browser doing it).