¡CSS!
Hacés una hoja de estilos aparte y le aplicás display:none a todo lo que querés que no se imprima. Suponé que tenés este html:
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="print.css" rel="stylesheet" media="print" type="text/css" />
</head>
<body>
<div id="cabecera">cabecera</div>
<div id="contenido">contenido</div>
<div id="pie">pie</div>
</body>
</html>
Ahora, en la hoja de estilos print.css (o cualquier otro nombre, fijate que está linkeada debajo de <head>) ponés:
Código HTML:
#cabecera, #pie {
display:none;
}
De esa forma sólo se imprime el contenido.
Básicamente, ponele id a todo lo que quieras ocultar y ponelo en la hoja de estilos separado por coma.
Si querés ver cómo queda sin tener que imprimir, fijate en el link debajo de <head> y cambia media="print" por media="screen" para ir chequeando la página.
Suerte
Fede