Yes to pretty much all of that.
Definitely remove background images and colours - a lot of browsers or setups won’t print them anyway, and those that do will annoy people by using up all their colour ink and generally making a mess of the page. If you have blocks that you want to highlight, you can use borders instead.
I would agree with setting the general foreground colour to black, but that doesn’t mean to say you can’t use other colours to pick out headings or other key elements, as long as it isn’t too over the top.
Serif fonts are generally thought to be better for blocks of text in print. However, some people prefer to keep the visual consistency for the site by using the same sans-serif font on screen and in print. It’s up to you. Personally, I do different things on different sites, depending on the feel of the site, the ‘tone’ of the fonts, and how much the content is formed of ‘large blocks of text’. Where the content is primarily graphic or tabular, I am less likely to use a serif font than when it consists of long paragraphs.
Get rid of as much positioning and dimensioning as possible. Generally you only need dimensions when you are positioning elements with anything other than ‘static’, so if you are making everything static you generally won’t need dimensions. Certainly don’t set a width on the main content (or if you do, make it 100%), as different countries use different sized paper (A4 vs Letter) and everyone has different default margins on their printers.
Alright, these are things I more or less understand, but when it comes to measurements most of the articles were very much contradictory. Some articles says to use pt, others px, em, then absolute measurements such as inches etc.
Print stylesheets are the one time you should use pt to size text. If you are setting any dimensions, you may find it easiest to use cm/in (1in = 72pt), it’s just easier to visualise the numbers than pt but no different in nature. You can use em any time you would use it on screen. Don’t ever use px for printing, it’s a screen measurement and doesn’t make any sense for print.
On a side note…I was looking over compatibility charts and found that page-break-before and page-break-after properties are even supported by IE6. Should I be bothered to make use of these?
Definitely. I would always put page-break-after:avoid; on all <h*> that you are using. You don’t necessarily want to be slapping page-break-before around too freely though, you might just end up wasting lots of your visitors’ paper if you use it where it isn’t necessary. (Note, the only browser I’ve found that respects table {page-break-inside:avoid;} is Opera).
Other things you can do are to put the title tip of any <abbr> or <acronym> elements you’ve used after them, and likewise the destination URL of any links, using :after. (You might want to only do that for external links). This doesn’t work in IE6 but is a useful extra for everyone else.