For "Print This Page" are several JavaScript solutions available, if you use Google. 456 Berea St had an interesting
article recently.
For creating PDF files on the fly, your server needs to have the necessary PHP libraries installed. Here’s an
article about how to do that.
Personally, I usually add a print CSS to my pages. That’s all I do, as I’m not a big fan of trying to implement functions in a webpage that actually are already provided by the application (browser).