Write two stylesheets for you page, like this:
<link rel="stylesheet" type="text/css" media="screen" href="css/hooview.css">
<link rel="stylesheet" type="text/css" media="print" href="css/hooprint.css">
For the stylesheet with media="print" set the elements you don't want to print to display="none"
button,input,select,textarea{display:none}
.noprint *{display:none}
#noprintDiv{display:none}
Note- if you set the display of any of these items with javascript you will need to reset their display to '' (empty string, default to stylesheet) before you print.
Just avoid scripting for the display styles of these elements