Perhaps if you assign "visibility:hidden" to any <DIV> tags or other elements in the page instead of assigning it to the <body> tag.
For example, you could assign a DIV to each element of the page with a class name of "no_print" and then put the following in your stylesheet:
Kind of clunky, but I think you get the idea.
Or if you already have class names assigned for your "media=screen" CSS file, I would suggest using those names in your print.css file to assign the visibility to, again instead of declaring the <body> tag to be hidden.
I guess it really depends on how much you have going on these pages.