Hola:
Tienes razón, pero es fácil la solución:
Al poner el estilo:
* {display: none;}
estaba ocultando hasta los contenedores de esos divs, así que ocultando el body no se muestran las capas dependientes, entonces como display none puedes poner por ejemplo los tags div:
div {display: none;}
Y luego no volver a ocultar la capa hasta que se imprima... por ejemplo, puedes ocultar todas las capas excepto la seleccionada:
<script type="text/javascript" media="print">
function tag(id) {return document.getElementById(id);};
function imprimir(capa) {
secci = ["seccion1", "seccion2", "seccion3"];
for (i = 0; i < 3; i++)
tag(secci[i]).className = (secci[i] == capa) ? "imprimible" : "";
print();
// tag(capa).className = "";
}
</script>
Saludos