Foros del Web » Programando para Internet » PHP »

disparar imprimir

Estas en el tema de disparar imprimir en el foro de PHP en Foros del Web. Amigos, estoy en un gran lio. Necesito implementar la impresion automatica desde un formulario de ingreso. Que luego de llenarlo, al grabar, dispare automaticamente la ...
  #1 (permalink)  
Antiguo 03/03/2006, 06:45
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
disparar imprimir

Amigos, estoy en un gran lio. Necesito implementar la impresion automatica desde un formulario de ingreso. Que luego de llenarlo, al grabar, dispare automaticamente la impresion de dicho documento hacia una impresora que esta en red.
Ahora. tengo que partir desde configurar el php.ini hasta que la cosa funcione.

Cualquier aporte estaré tremendamente agradecido.
  #2 (permalink)  
Antiguo 03/03/2006, 07:46
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Lei en http://www.php.net/manual/es/ref.printer.php
que hay que instalar php_printer.dll

Esta dll no la tiene el server, entonces la pregunta es si podre imprimir tan solo con configurar una?

Mauricio
  #3 (permalink)  
Antiguo 03/03/2006, 08:20
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
hice lo siguiente:

Segun http://www.php.net/manual/es/ref.printer.php
es necesario contar con la libreria php_printer.dll
esta hay que instalarla en C:\Archivos de programa\PHP\ext
bajarla desde: http://snaps.php.net/win32/PECL_4_3/
agregar la linea:
extension=php_printer.dll
en C:\windows\php.ini

Y Ahora me manda el error:
Warning: printer_open() [function.printer-open]: couldn't connect to the printer [HP CLJ 4650DN PCL 6] in C:\Archivos de programa\Apache Group\Apache2\htdocs\desaSGM\imprimir\imprimir.php on line 2

  #4 (permalink)  
Antiguo 03/03/2006, 08:37
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Le indicaste la ruta de red?
  #5 (permalink)  
Antiguo 03/03/2006, 08:45
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
esto es lo que hago:

<?php
printer_open('\\\10.4.51.18\HP CLJ 4650DN PCL 6');
//$handle = printer_open("HP CLJ 4650DN PCL 6");
printer_start_doc($handle, "Mi Documento");
printer_start_page($handle);
$font = printer_create_font("Arial",55,30,400,false,false, false,0);
printer_select_font($handle, $font);
printer_draw_text($handle, "ESTOY TRATANDO DE HACER FUNCIONAR ESTA COSA....",50,400);
printer_delete_font($font);
printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

ahora, la impresora esta en la red, no conectada al server.
Mauricio

Última edición por maurimono; 03/03/2006 a las 09:16
  #6 (permalink)  
Antiguo 03/03/2006, 08:54
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Creo que te faltó un \, prueba asi:

printer_open('\\\\10.4.51.18\\HP CLJ 4650DN PCL 6');
  #7 (permalink)  
Antiguo 03/03/2006, 09:56
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
De todas formas me envia el error...

Warning: printer_open() [function.printer-open]: couldn't connect to the printer [\\10.4.51.18\HP CLJ 4650DN PCL 6]



Chuuuu!!!
  #8 (permalink)  
Antiguo 03/03/2006, 10:19
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
si el manual dice:

<?php
$handle = printer_open("HP Deskjet 930c");
$handle = printer_open();
?>

por que manda un error??????
  #9 (permalink)  
Antiguo 03/03/2006, 11:42
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Cita:
Iniciado por maurimono
si el manual dice:

<?php
$handle = printer_open("HP Deskjet 930c");
$handle = printer_open();
?>

por que manda un error??????
Eso funciona bien en una impresora local, yo lo he probado, pero en una impresora en red es necesario especificar ruta de red, el codigo que te indiqué (con los doble \ en la ruta) se conecta a la impresora, pero no he podido escribir, me arroja este error:

Warning: printer_write() [function.printer-write]: couldn't allocate the printerjob [5] in C:\Archivos de programa\Apache Group\Apache2\htdocs\Pruebas\printer.php on line 4

Estoy viendo que puede ser. En tu caso, no sé si podrás acceder a la impresora desde tu server.
Habrá alguna diferencia con comillas dobles, asi:

printer_open("\\\\10.4.51.18\\HP CLJ 4650DN PCL 6");
  #10 (permalink)  
Antiguo 03/03/2006, 12:12
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Es cierto. hay que especificar el nombre o ip del server.
pero viejo ya he probado todo. incluso comparti la impresora del server.
y nada.
una cosa. en inicio/ejecutar/ ip/nombre_imporesora
deberia verla??
Atte
Mauricio
  #11 (permalink)  
Antiguo 03/03/2006, 12:40
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Cita:
Iniciado por maurimono
una cosa. en inicio/ejecutar/ ip/nombre_imporesora
deberia verla??
Atte
Mauricio
No, yo accedo a ella, pero no puedo verla así.

No sé si hiciste esto: En el servidor que tiene php, te vas a impresoras y faxes-> agregar impresora-> impresora en red-> buscar impresora, la encuentras y te conectas a ella, luego la dejas como predeterminada, y a la funcion open la llamas sin parametros, asi:

$handle=printer_open();
  #12 (permalink)  
Antiguo 03/03/2006, 12:58
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
si, ya lo hice:

Warning: printer_open() [function.printer-open]: couldn't connect to the printer [,,,] in C:\Archivos de programa\Apache Group\Apache2\htdocs\desaSGM\imprimir\imprimir.php on line 18

ademas hice:
PRINTER_ENUM_SHARED;
$var_dump = printer_list(PRINTER_ENUM_LOCAL);
while(list($key, $value) = each($var_dump))
{
echo "$key, $value";
}
echo var_dump( printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED) );

eso se supone que es para ver las impresoras del server
me dice:
array(0) { }

  #13 (permalink)  
Antiguo 03/03/2006, 13:07
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Cita:
Iniciado por maurimono
si, ya lo hice:

Warning: printer_open() [function.printer-open]: couldn't connect to the printer [,,,] in C:\Archivos de programa\Apache Group\Apache2\htdocs\desaSGM\imprimir\imprimir.php on line 18

ademas hice:
PRINTER_ENUM_SHARED;
$var_dump = printer_list(PRINTER_ENUM_LOCAL);
while(list($key, $value) = each($var_dump))
{
echo "$key, $value";
}
echo var_dump( printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED) );

eso se supone que es para ver las impresoras del server
me dice:
array(0) { }

Es muy raro tu caso, a mi me funciona ese código que indicas para ver las impresoras del server que están compartidas.
  #14 (permalink)  
Antiguo 04/03/2006, 07:06
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Sin duda que el tema debe pasar por conecciones de red o algo por el estilo. el caso es el siguiente.
El servidor tiene instalada una impresora que esta en red, es decir no cuelga de ese equipo, a ella llegan trabajos de cualquier equipo, incluso desde este servidor, yo ingreso al equipo con Conexión a Escritorio remoto y puedo imprimir.
Ya he agotado todas las posibilidades posibles de conexion y suguie sin funcionar.
Atte
Mauricio
  #15 (permalink)  
Antiguo 04/03/2006, 12:18
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Logre imprimir desde otro servidor con una version anterior inferior a la del original. lo unico que tuve que hacer fue instalar una impresora, configurar el php.ini, modificar extension="path" donde incorpore la dll. y listo... funciona!!

La unica diferencia es la version del php una es la 4.1xx la otra es la 5.01
Atte
Mauricio
  #16 (permalink)  
Antiguo 08/03/2006, 09:18
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
De acuerdo

Encontre la solucion. Fijate que era un tema de red. en realidad el equipo donde esta php, no tenia instalada y compartida la impresora, asi que apuntamos al servidor de dominio.
Otra cosa, importante es que basta con bajar la dll, instalarla en /extension o como se llame (/ext), descomentar el extension=php_printer.dll. luego en la coneccion solo hay que saber apuntar bien al server que tiene compartida esa impresora.
$handle = printer_open("\\\\server\\printer");

Hay una directiva que se llama

[Printer]
;printer.default_printer = ""

Ahi tambien se puede incluir una impresora predeterminada. Un dato curioso es que en el php 5.02 no aparecia asi que se la agregue y me funcionó
Atte
Mauricio
Pd. Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:11.