#1 para imprimir los backgrounds no. Siempre he tenido problema con eso... Lo único que puedes hacer es poner una imagen en una Capa con <img> y que esa capa tenga un z-index:0px; despues por encima pones todo lo demás.
es decir
<!--Esta capa simularia un background, pero al ser una etiqueta <img> se verá obligado a imprimirse-->
<div style="position:absolute;width:1024px;height:800px;left:0px;top:0px;z-index:0;">
<img src="./laImagenDeBackground.png">
</div>
<!--Esta capa sería el resto de la web-->
<div style="position:absolute;width:1024px;height:800px;left:0px;top:0px;z-index:99;">
<label>Nombre:</label>
Pepe
<label>Estudios:</label>
e HeStuDiaDo Pa ReShuLo PuTiCaS
</div>
Evidentemente los tamaños son inventados. Te aviso de que cada navegador interpreta los Css a la hora de imprimir de un modo bastante distinto, almenos esa experiencia he tenido yo, aún peor que simplemente hacer la web para varios navegadores.
En IE7 veía la web bien, pero al intentar imprimirla se descolocaba toda completamente. Aunque si estás haciendo un css aposta para imprimir doy por hecho que ya lo sabes.
Espero haberte ayudado en algo.