¿Como imprimo desde PHP?

ikanus Seguir

Gamma
Programador
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
22 Sep 2010
Mensajes
284
Amigos del foro espero que puedan ayudarme, estoy aprendiendo a programar en PHP, quisiera hacer un sistema de farmacia pero no he encontrado funciones o algún tutorial sobre como imprimir una factura o un reporte desde PHP, yo tengo la idea de colgar el sistema en un hosting y quisiera que quien use el sistema puede imprimir. ¿Es posible o tendré que crear un sistema de escritorio?
 

wjharil

Delta
Programador
Desde
29 Ago 2011
Mensajes
567
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Lo mas facil, es que crees tu modelo (es decir, que hagas la plantilla que imprimira) y mostrarlo, luego darle imprimir.

Eso puede solucionarte lo que deseas.
 

ikanus

Gamma
Programador
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
22 Sep 2010
Mensajes
284
Gracias wjharil, si tengo una plantilla para imprimir, pero como hago la función de imprimir?
 

wjharil

Delta
Programador
Desde
29 Ago 2011
Mensajes
567
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Solo pon COntrol + P n.n !
 

Waldd0

Delta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Mar 2010
Mensajes
717
[MENTION=3422]ikanus[/MENTION] no se te entiende bien que necesitas hacer.
Php va a ejecutar cosas del lado del servidor para mostrarlas del lado del cliente.
Pero imprimir... podes hacerlo directamente desde html (con javascript).
Ejemplo:
HTML:
<form>
<input type="button" value="Print this page" onClick="window.print()">
</form>
No necesitas función php para eso.
 

jonymusky

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
25 Oct 2013
Mensajes
66
Como va?

Hay una falla de conceptos en tu pregunta.
PHP es un lenguaje de programación SERVER SIDE, lo que significa es que corre del lado del servidor.

La función de imprimir a menos que quieras imprimir en el servidor (seria algo inusual) es del lado del cliente. (Javascript)

Tal como te mencionaron podes hacerlo con window.print();

Sino lo que podes hacer con PHP es generar un PDF y luego ese pdf imprimirlo o guardarlo.
Hay varias librerias para la generación de PDF.

Cualquier cosa detallo un poco más.

Saludos!
 

CristianOspina

Beta
Programador
Verificación en dos pasos activada
Desde
9 Jul 2012
Mensajes
148
Como ya te dijo jonymusky, con PHP no puedes lanzar una opcion para imprimir automaticamente, no obstante con JavaScript puedes usar windows.print(), para ello el usuario tiene que hacer una acción, hundir un boton o algo así, aunque puedes poner que al cargar la página se ejecute y comience a imprimir, igual se te abrira el dialogo de impresora y demás... con simple programación web no puedes imprimir automaticamente algo.
 

Torrecilla

1
Ni
Programador
Verificación en dos pasos activada
Suscripción a IA
Desde
2 Feb 2013
Mensajes
3.867
Yo también estoy a favor de que uses una clase externa para generar los reportes con los campos que consideres necesarios :)

En PHP no puedes mandar imprimir a la impresora sencillamente porque PHP no interactúa con la computadora, si no en el mismo servidor y sobre páginas web (por ejemplo para leer el código fuente de una página alojada en otro servidor, con cURL).
 

ikanus

Gamma
Programador
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
22 Sep 2010
Mensajes
284
Gracias amigos por las respuestas, entiendo que mi pregunta no es clara, pero creo que ustedes la han entendido. El forero Torrecilla menciona una clase externa, ¿te refieres a un lenguaje diferente a php?
Mi duda va por el hecho de generar un comprobante a un cliente, es que he leído que es complicado imprimir HTML porque dependiendo del navegador varía la apariencia, y si quieren imprimir varias facturas seguidas, es un problema de tiempos que a veces el cliente no comprende. Si alguno de ustedes ha desarrollado un sistema comercial en PHP y que imprima comprobantes (facturas, boletas, recibos) sería bueno que lo comente para saber que es una buena opción de desarrollo.
 

txispas

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Oct 2013
Mensajes
43
Gracias amigos por las respuestas, entiendo que mi pregunta no es clara, pero creo que ustedes la han entendido. El forero Torrecilla menciona una clase externa, ¿te refieres a un lenguaje diferente a php?
Mi duda va por el hecho de generar un comprobante a un cliente, es que he leído que es complicado imprimir HTML porque dependiendo del navegador varía la apariencia, y si quieren imprimir varias facturas seguidas, es un problema de tiempos que a veces el cliente no comprende. Si alguno de ustedes ha desarrollado un sistema comercial en PHP y que imprima comprobantes (facturas, boletas, recibos) sería bueno que lo comente para saber que es una buena opción de desarrollo.

Para q se t imprima A TODOS x igual, sea cual sea el navegador y los pixels de monitor que use, debes usar "@media only print" y aqui dentro el estilo en CSS, de este modo, siempre q se pida impresion tendra la misma apariencia.
 

JavierNeri

Épsilon
SEO
Verificación en dos pasos activada
Desde
6 Abr 2009
Mensajes
871
Yo desarrolle un sistema en PHP para un cliente (una empresa local), el sistema estaba desarrollado inicialmente para administrar clientes, proveedores y empleados, llevar un control de los procesos, etc... después el sistema creció y me pidieron que agregara una sección de pagos, en esa empresa la mayoría de los pagos son en efectivo y se les entrega un recibo a los clientes, en la empresa creaban el recibo en excel y lo imprimían, por lo que no había problema, el sistema generaba un excel y listo, pero después integraron una impresora de tickets, de esas de punto de venta y ahí si que fue un dolor de cabeza hacerla funcionar pues el sistema corre en un servidor web y la impresora en una computadora local por lo que tuve que romperme la cabeza muchas horas.

Al final lo que hice fue que el sistema en PHP genera un XML con los datos del recibo y en .NET programe un a pequeña aplicación que se conecta al servidor, lee el XML usando internet y genera el recibo y lo imprime en la impresora de tickets. En la interfaz de usuario de la aplicación solo puse un botón.

Lo único malo es que el proceso no es 100% automático pues después de capturar el recibo en el sistema web es necesario abrir la aplicación y hacer click en un botón para imprimir el ticket.
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
Yo desarrolle un sistema en PHP para un cliente (una empresa local), el sistema estaba desarrollado inicialmente para administrar clientes, proveedores y empleados, llevar un control de los procesos, etc... después el sistema creció y me pidieron que agregara una sección de pagos, en esa empresa la mayoría de los pagos son en efectivo y se les entrega un recibo a los clientes, en la empresa creaban el recibo en excel y lo imprimían, por lo que no había problema, el sistema generaba un excel y listo, pero después integraron una impresora de tickets, de esas de punto de venta y ahí si que fue un dolor de cabeza hacerla funcionar pues el sistema corre en un servidor web y la impresora en una computadora local por lo que tuve que romperme la cabeza muchas horas.

Al final lo que hice fue que el sistema en PHP genera un XML con los datos del recibo y en .NET programe un a pequeña aplicación que se conecta al servidor, lee el XML usando internet y genera el recibo y lo imprime en la impresora de tickets. En la interfaz de usuario de la aplicación solo puse un botón.

Lo único malo es que el proceso no es 100% automático pues después de capturar el recibo en el sistema web es necesario abrir la aplicación y hacer click en un botón para imprimir el ticket.

en realidad no imprimis desde PHP... pero si desde JS... solo con PHP+HTML armas todo como seria el ticket en un popup y con
HTML:
<a href="javascript:void(0);" onclick="window.print();">Imprimir</a>
imprimis el contenido de la ventana :)

Saludos
 

JavierNeri

Épsilon
SEO
Verificación en dos pasos activada
Desde
6 Abr 2009
Mensajes
871
en realidad no imprimis desde PHP... pero si desde JS... solo con PHP+HTML armas todo como seria el ticket en un popup y con
HTML:
<a href="javascript:void(0);" onclick="window.print();">Imprimir</a>
imprimis el contenido de la ventana :)

Saludos


el problema es que las impresoras de tickets, al menos de matriz de punto, no trabajan igual que las impresoras normales, imprimen solo caracteres, y tiene su propio sistema de "codificación" en algo así como un "lenguaje de bajo nivel". Ademas de que tenían que configurar el navegador cada vez que querían imprimir un ticket para elegir la impresora de puntos y el tamaño de la hoja. Ya que no solo imprimían tickets desde esa computadora.

Pero bueno, en realidad no se que es lo que desee imprimir el creador del post, si solo va imprimir una factura en una impresora normal, el código que compartes es adecuado, pero si desea imprimir un ticket, es mas complicado el asunto.
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
el problema es que las impresoras de tickets, al menos de matriz de punto, no trabajan igual que las impresoras normales, imprimen solo caracteres, y tiene su propio sistema de "codificación" en algo así como un "lenguaje de bajo nivel". Ademas de que tenían que configurar el navegador cada vez que querían imprimir un ticket para elegir la impresora de puntos y el tamaño de la hoja. Ya que no solo imprimían tickets desde esa computadora.

Pero bueno, en realidad no se que es lo que desee imprimir el creador del post, si solo va imprimir una factura en una impresora normal, el código que compartes es adecuado, pero si desea imprimir un ticket, es mas complicado el asunto.

1- google: Blog Sistemas Web - Sergio Zegarra: IMPRIMIR TICKET EN IMPRESORA FISCAL CON PHP - PASO A PASO - LADO DEL CLIENTE
2- podes ejecutar un .exe o algo en la linea de comandos desde php tmb...
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
yo yo lo intente mil veces con ese y varios ejemplos mas que hay en la red y nada me funciono :(

pero vos decis que una ves que se genera el ticket el user tiene ke abrir una apps y darle click a un boton... pero porke no haces todo eso desde la consola... osea el php llama a la funcion exec y desde la consola imprimis... mas especifico

PHP->ejecutable programado en .net nivel consola->este ejecutable no pide precionar un boton ni nada solo imprime de una->sale el resultado por impresora

el user jamas se entera de nada, ya que es todo por debajo.
 

ikanus

Gamma
Programador
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
22 Sep 2010
Mensajes
284
Gracias Javier, tu respuesta fue algo que aclaró un poco más las cosas, pero creo que el procedimiento es bastante tedioso, aunque sé que con PHP es algo complicado.

Yo desarrolle un sistema en PHP para un cliente (una empresa local), el sistema estaba desarrollado inicialmente para administrar clientes, proveedores y empleados, llevar un control de los procesos, etc... después el sistema creció y me pidieron que agregara una sección de pagos, en esa empresa la mayoría de los pagos son en efectivo y se les entrega un recibo a los clientes, en la empresa creaban el recibo en excel y lo imprimían, por lo que no había problema, el sistema generaba un excel y listo, pero después integraron una impresora de tickets, de esas de punto de venta y ahí si que fue un dolor de cabeza hacerla funcionar pues el sistema corre en un servidor web y la impresora en una computadora local por lo que tuve que romperme la cabeza muchas horas.

Al final lo que hice fue que el sistema en PHP genera un XML con los datos del recibo y en .NET programe un a pequeña aplicación que se conecta al servidor, lee el XML usando internet y genera el recibo y lo imprime en la impresora de tickets. En la interfaz de usuario de la aplicación solo puse un botón.

Lo único malo es que el proceso no es 100% automático pues después de capturar el recibo en el sistema web es necesario abrir la aplicación y hacer click en un botón para imprimir el ticket.

Gracias cicklow. Tu intención es automatizar lo que hizo Javier, ¿tienes algún ejemplo?

pero vos decis que una ves que se genera el ticket el user tiene ke abrir una apps y darle click a un boton... pero porke no haces todo eso desde la consola... osea el php llama a la funcion exec y desde la consola imprimis... mas especifico

PHP->ejecutable programado en .net nivel consola->este ejecutable no pide precionar un boton ni nada solo imprime de una->sale el resultado por impresora

el user jamas se entera de nada, ya que es todo por debajo.

Gracias a quienes comentan.
 

WWWW

Pi
Verificación en dos pasos activada
Desde
4 Mar 2013
Mensajes
5.258
[MENTION=39355]Torrecilla[/MENTION] Como imprimir un archivo, pero si el navegador no soporta javascript, solo php que claro esta del lado de servidor .

¿alguna solución? Claro que no sea Ctrl + p o la opción imprimir pantalla, la cuestión es a través de un botón, el usuario imprima un documento sin javascript.

Saludos.

-------------------------------------------- **************** ------------------------------------

No me di cuenta pero ya aclararon unas cosas arriba de este mensaje, muy interesantes por cierto.
 
Última edición:

juanote

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
31 Oct 2013
Mensajes
31
Buenas. Tomo nota, aunque por lo que veo hay varias formas de hacerlo.
 

kronenmix

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
4 Sep 2010
Mensajes
49
Te recomiendo que uses alguna clase generadora de pdf a partir de html, de esa forma en todos los PCs se imprimirá igual.
 
Arriba