Hola.
para imprimir puedes usar un simple css.
primero el boton que va mandar a imprimir.
Código HTML:
Ver original<input type="button" value="Print this page" onClick="window.print()">
Segundo el css que va cargar la impresora.
Código HTML:
Ver original<link href="estilos_impresion.css" rel="stylesheet" type="text/css" media="print">
En este css defines todas las reglas ( colores, ocultas elementos, tamaños, etc. )
y para generar los pdf's yo he usado esta libreria.
http://www.fpdf.org/
Cualquier duda por aqui estamos. Saludos.