See Stylish for an example (printing single Database records).
I agree it is a cool feature and would be nice if it were more widely supported, however it does have some downsides too - the most obvious that people who are expecting to see a printout of the on-screen display might be disturbed if the printed version is significantly different. (Unfortunately browsers do not provide a way of making print styles comprehensible to users.)
For minor changes though it's certainly a big plus...
This is a particularly timely post for me, as I am just starting to look at ways of printing new pages I have added to Moodle.
Just to clarify, would what you and Frank are discussing here be the recommended Moodle way to implement a "Print version" or "Printer friendly" type link for pages. For example to use a link element with media="print". I am not quite sure the difference of using @media, but I am still new to CSS. I can look that up!
If you guys could continue reading my mind, and putting up answers to my questions before I have to post them, that would save me a lot of time!
Update: I looked up @media... I get it now. Cool.
Thank for the hint, @media is even better.
You're right. That would take a bit of control out of the users' hand. The question is, what the expected default behavior should be when printing a page. IMO in most cases you would want it to be printed without all that navigation stuff and the like. This is especially true with a lot of Moodle activities like glossary or database entries.
For those who want a bit more control over which CSS to apply to which page see the brand new Stylish page on Moodle Docs (work in progress).
However I think it's best to use @media print rules to control printed appearance where possible, when you only need minor changes to make a page print properly.
If you need significant changes (e.g. completely reordering information to display it vertically instead of horizontally) or otherwise to make the page contain different content (e.g. if the normal display shows you a single 'thing' at a time, whereas users might want to print all the 'things' at once), then a good old-fashioned 'printable version' is more appropriate.
Here we did build an old-style printable version of the course page for our custom course format. We could have just made print media rules that hide the left and right columns, header (except breadcrumb trail), and footer from the page. I was tempted to do this but in the end we felt it would potentially confuse users because [depending on the block] it's possible some people might be printing out a page solely so that they have a record of something that happens to be in a block! And they are going to get really frustrated if that block mysteriously disappears from the page when they print it.
By the way, opinions vary on this, but some people including me believe that 'style switcher' blocks are usually not an appropriate solution for accessibility. (It looks like this is what you were arguing on the linked thread, so I agree with you.) I don't have a major problem with it for printable versions though... although I'd still prefer if browsers gave users some kind of options and information about print stylesheets. Think I filed a Firefox bug about that one time way back...
Another alternative might be to supply users with scripts that they can load to modify the look and feel of moodle. For example, users scripts try to do these with other sites.