markspace
When using dynamic character sheets, the css file for the sheet is loaded with a media=screen attribute. This means that it is ignored when printing the page, which removes all the styling for the dynamic character sheet. By using the GreaseMonkey plugin on Firefox or Chrome with a small script, you can change this to media=all which then keeps the same styling for printing.
This gives better print results. (If you want even better results, then add @print sections to the character sheet css to remove non-character sheet elements and page breaks).
Its not perfect, but might be useful to some people.
GreaseMonkey is a plugin that runs on Firefox and Chrome and is used to alter web pages on the fly.
The GreaseMonkey script I am using is:
// ==UserScript==
// // @name opcharprint
// // @namespace markspace
// // @description Obsidian Portal Print fix
// // @include http://www.obsidianportal.com/*/characters/*
// // @version 1
// // @grant none
// // ==/UserScript==
jQuery('link[class="dst-stylesheet-link"]').attr('media', 'all');