Imprimir en impresoras en PHP
Estoy tratando de configurar una aplicación CLI PHP para imprimir un conjunto de páginas web en una impresora predeterminada o especificada. Estoy en una máquina con Windows 7 con PHP 5.2.11 ejecutándose en una CLI. Para probar la funcionalidad de impresión, he cargado PHP_printer.dll y estoy imprimiendo en Onenote, una opción de imprimir en archivo, usando el nombre exacto de la impresora que aparece en PRINTER_ENUM_LOCAL.
Actualiza: Aquí está el último código:
$handle = printer_open("Send To OneNote 2010");
printer_start_doc($handle, "My Document");
printer_start_page($handle);
$filename='index.html';
$fhandle=fopen($filename, 'r');
$contents = fread($fhandle, filesize($filename));
fclose($fhandle);
printer_set_option($handle, PRINTER_MODE, "RAW");
printer_write($handle,$contents);
printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
Obtuve este código para imprimir una página en blanco en la impresora correcta, pero no puedo imprimir las cadenas que paso a printer_write. Confirmé que$contents
está correctamente lleno con el contenido de mi archivo html de prueba. No importa lo que proporcione como segundo argumento (cadena que se imprimirá), obtengo una página en blanco. ¿Me falta algo que al menos me permita imprimir texto en una página?
Alternativamente, ¿hay una mejor manera de hacer esto (usando archivos PHP / javascript)? Lo que intento hacer es imprimir páginas web tal como aparecen (CSS incluido) a través de una aplicación CLI, el sitio web está escrito en PHP y estoy tratando de minimizar la complejidad. Si hay una mejor manera de imprimirlos (al parecer, la conversión a PDF y la impresión es una opción) estoy abierto, pero parecía que este era el método más simple / de facto en PHP.