Si te quieres liar de lo lindo prueba con
http://es2.php.net/manual/es/ref.printer.php ,
Yo lo utilizo porque debo imprimir en una impresora conectada al servidor y no al cliente, lo malo es que es igual de arcaico que pintar en un canvas, por lo cual el control de cabeceras, pie de página, etc. lo hay que controlar "a mano" .
Te dejo un pedazo de código como ejemplo de uso.
Código PHP:
$handle = printer_open('nombre_de_impresora_local_compartida_en_el_equipo_servidor');
printer_start_doc($handle, "Etiqueta palet");
$font = printer_create_font("c39hrp24dhtt", 400, 50, 2500, false, false, false,0);
$font2 = printer_create_font("Arial", 60, 25, 900, false, false, false,0);
printer_select_font($handle, $font);
printer_draw_text($handle, "*".$etiqueta_palet."*", 20, 20);
printer_select_font($handle, $font2);
printer_draw_text($handle, "NOMBRE EMPRESA", 30, 450);
printer_delete_font($font);
printer_delete_font($font2);
printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);