FAQ

Dilluns 27 Octubre 2003 21:21, Alexis Sifuentes dixit:

Sucede que acabo que tengo un problema de impresión para una aplicación que
estoy realizando y la solución la encontré en un mensaje tuyo a la lista:
http://www.phpes.com/archivo.php?mess_id=2149&sid=16536&start=390

El problema es que no se como llevar a cabo este párrafo:

"Puedes configurar los navegadores de las máquinas que han de imprimir
asociando una determinada extensión, que ningún otro programa use
(digamos .xyj) con un ejecutable que no tiene porqué ser clipper, te
bastará con un simple fichero bat. Este ejecutable lo único que ha de
hacer es encaminar los ficheros que le lleguen hacia lpt1."

No se si me podriás dar una orientación mas específica.
En ese mensaje antiguo de la lista creo recordar que el problema era imprimir
texto tabulado en impresoras matriciales (facturas o recibos o cosas así). El
tema era imprimir directamente en la impresora del cliente, pero ojo, el
cliente estaba en una intranet.

La solución que sugerí deberia funcionar en ese contexto, puesto que al ser
una intranet es posible configurar a mano (tú mismo o el administrador de la
intranet) el comportamiento del navegador del cliente, así como instalar en
el cliente un pequeño programa que redireccione a la impresora.

Ahora he hecho una prueba con un cliente Linux usando el navegador Mozilla y
veo que efectivamente funciona. Supongamos que queremos imprimir facturas,
esto es lo que haríamos:

- La página html que contiene un botón 'imprimir' para la factura 50:

<html>
<head></head>
<body>
Pulsa <a href='imprimir.php?factura=50'>aquí</a> para imprimir La factura 50
</body>
</html>

- El programa imprimir.php que ejecutaremos al pulsar el boton 'inprimir':

<?

header('Content-type: text/inprimir');

// aquí irian las intruciones para conectar con la base de datos
// para recoger los datos de la factura que sea.
// ....
// ....

echo "Factura nº: $_GET[factura]
etc.
etc.
etc...";

?>

- La configuración del Mozilla del cliente (si el cliente usa otro navegador,
buscar la configuración correspondiente):

Edit -> Preferences -> Navigator -> Helper Applications -> New Type

He añadido un tipo mime inexistente (text/imprimir):

Mime Type: text/imprimir
Open it with: /usr/bin/lpr

lpr es un programa Unix/linux que envia a la impresora el fichero que le
indiquemos. Si el cliente usa windows (no recuerdo si en MsDOS existe algún
programa equivalente a lpr), se puede crear un fichero .bat con una
instrucción que redirija a la impresora, algo así: copy %1 > lpt1

Y listo! En las pruebas que he hecho ha funcionado perfectamente.

Saludos
Àngel

Search Discussions

  • Àngel Fenoy at Oct 28, 2003 at 4:57 pm
    Hay un par de errores en los ejemplos que he puesto...
    - El programa imprimir.php que ejecutaremos al pulsar el boton 'inprimir':

    <?

    header('Content-type: text/inprimir');
    Debería ser con 'm':

    header('Content-type: text/imprimir);
    lpr es un programa Unix/linux que envia a la impresora el fichero que le
    indiquemos. Si el cliente usa windows (no recuerdo si en MsDOS existe algún
    programa equivalente a lpr), se puede crear un fichero .bat con una
    instrucción que redirija a la impresora, algo así: copy %1 > lpt1
    Debería ser:

    copy %1 lpt1

    O también:

    echo %1 > lpt1

    Saludos
    Àngel
  • Alexis Sifuentes at Oct 28, 2003 at 7:50 pm
    Angel: Esta solución también es válida para impresoras láser?
    Saludos,
    Alexis

    ----- Original Message -----
    From: "Àngel Fenoy" <afenoy@wol.es>
    To: <lista@phpes.com>
    Sent: Tuesday, October 28, 2003 11:57 AM
    Subject: Re: [PHP-ES] Impresión en el cliente (Intranet)

    Hay un par de errores en los ejemplos que he puesto...
    - El programa imprimir.php que ejecutaremos al pulsar el boton
    'inprimir':
    <?

    header('Content-type: text/inprimir');
    Debería ser con 'm':

    header('Content-type: text/imprimir);
    lpr es un programa Unix/linux que envia a la impresora el fichero que le
    indiquemos. Si el cliente usa windows (no recuerdo si en MsDOS existe
    algún
    programa equivalente a lpr), se puede crear un fichero .bat con una
    instrucción que redirija a la impresora, algo así: copy %1 > lpt1
    Debería ser:

    copy %1 lpt1

    O también:

    echo %1 > lpt1

    Saludos
    Àngel


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
  • Àngel Fenoy at Oct 28, 2003 at 8:35 pm

    Dimarts 28 Octubre 2003 20:50, Alexis Sifuentes dixit:

    Angel: Esta solución también es válida para impresoras láser?
    Aún no has explicado qué es lo que quieres hacer, solo has mencionado que el
    mensaje antiguo de la lista era la solución para tu problema, pero que no
    entendias lo de la redirección desde el navegador del cliente. Si la
    impresora es local, debería funcionar lo mismo si es matricial como si es
    láser. De todos modos, si tú tienes una de esas impresoras láser, inténtalo y
    nos cuentas qué tal.

    Saludos
    Àngel
  • Joe Nilson Zegarra Galvez at Oct 28, 2003 at 8:44 pm
    Bueno no entendi lo que quizo decir eso de que en windows o en linux,
    miren yo tenia ese problema y encontramos un software que se llama winlpd,
    creo que estaba algo de $60 y eso es lo que usamos en nuestras maquinas
    windows, y en las linux cups normal, todas las que tienen una impresora
    tienen el uno o el otro, y en nuestro servidor de aplicaciones estan en el
    spool por el ip digamos algo asi print10 (de la 100.100.1.10) print45 (de
    la 100.100.1.45) y asi sustantivamente, entonces como todo esta en el
    spool del server, yo meto esa lista de impresoras a una tabla en mi DB y
    el usuario selecciona a que printer mandar a imprimir y en mi codigo php
    tengo una linea que dice:

    system("lpr -Pprint$spool $archivaldo");

    donde $spool es el ip de la impresora que haya escogido el usuario, claro
    que esto solo foruncia para printers FX, LQ u otras de Texto, para mandar
    los reportes a las Laser o a las de Inyeccion, lo unico que hicimos fue
    generar PDF's con la libreria FPDF y listo el asado ;).

    Bueno es solo un comentario de como se puede solucionar.

    Si alguien usa otro metodo seria interesante saberlo

    Saludos


    Nilson


    Àngel Fenoy dijo:
    Dimarts 28 Octubre 2003 20:50, Alexis Sifuentes dixit:
    Angel: Esta solución también es válida para impresoras láser?
    Aún no has explicado qué es lo que quieres hacer, solo has mencionado que
    el
    mensaje antiguo de la lista era la solución para tu problema, pero que no
    entendias lo de la redirección desde el navegador del cliente. Si la
    impresora es local, debería funcionar lo mismo si es matricial como si es
    láser. De todos modos, si tú tienes una de esas impresoras láser,
    inténtalo y
    nos cuentas qué tal.

    Saludos
    Àngel


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

    -------------------------
    Joe Nilson Zegarra Galvez
    Sistemas Kola Real
    Telefax : 0051-54-256658
    Movil: 0051-54-9603244
  • Alexis Sifuentes at Oct 28, 2003 at 9:37 pm
    Bueno lo que yo necesito hacer es mandar a imprimir facturas de un sistema
    de ventas. El número de facturas impresas va a variar dependiendo de la
    transacción que se realize.

    El detalle de cada factura las almaceno en un fichero .txt y lo lanzo a
    imprimir tal como esté en el ejemplo.

    Ya he probado la solución y me funciona.......pero en el archivo .bat he
    puesto el siguiente comando "print %1 to lpt1".

    Lo he probado en impresoras matriciales y laser y no hubo problema alguno.

    graciasssssss
    Saludos,
    Alexis.



    ----- Original Message -----
    From: "Àngel Fenoy" <afenoy@wol.es>
    To: <lista@phpes.com>
    Sent: Tuesday, October 28, 2003 3:35 PM
    Subject: Re: [PHP-ES] Impresión en el cliente (Intranet)

    Dimarts 28 Octubre 2003 20:50, Alexis Sifuentes dixit:
    Angel: Esta solución también es válida para impresoras láser?
    Aún no has explicado qué es lo que quieres hacer, solo has mencionado que el
    mensaje antiguo de la lista era la solución para tu problema, pero que no
    entendias lo de la redirección desde el navegador del cliente. Si la
    impresora es local, debería funcionar lo mismo si es matricial como si es
    láser. De todos modos, si tú tienes una de esas impresoras láser,
    inténtalo y
    nos cuentas qué tal.

    Saludos
    Àngel


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedOct 28, '03 at 3:17p
activeOct 28, '03 at 9:37p
posts6
users3
websitephp.net

People

Translate

site design / logo © 2022 Grokbase