Hola he decidido crear este blog debido a los multiples problemas que tuve al querer imprimir tickets con una impresora de tickets TMU 220 pa en Sistemas Operativos Linux
En primer lugar no existen drivers (Controladores) para Linux para estas impresoras
La unica forma de imprimir sin borrones o letras cortadas es escribiendo directo en el puerto paralelo /dev/lp0 o si el cable es usb /dev/usb/lp0
NOTA: Esto hace que no se pueda cambiar el tamaño de la fuente e imprimie en colores y tampoco cortar el papel automaticamente...
PERO: Nos ahorra instalacion de Drivers (Eso si es genial)
Por lo tanto debemos armar nuestro ticket solo con letras y guiones.
En mi caso particular que uso PHP para buscar los datos del ticket del lado del servidor tuve problemas por que PHP esta hecho para que funcione del lado del servidor y no del lado del cliente por lo tanto es necesario instalar php en los clientes tambien
Generalizando los pasos son los siguientes
1- Hacer un programa en php para la maquina cliente que espere el contenido del ticket y lo escriba al puerto lo llamaremos ticket.php y lo pondremos en /var/www/html
2- hacer la consulta del lado del servidor y armar un pequeño formulario con el contenido que se imprimirá y cuando se cargue todo redireccionarlo a http://localhost/ticket.php
3- Modificar el archivo /etc/group y agregar el usuario apache al grupo lp para que pueda escribir al puerto /dev/lp0
El contenido del archivo ticket.php seria el siguiente
<?php
// file: ticket.php
$contenido = $_REQUEST['contenido'];
$PRINTER_PORT = '/dev/lp0';
echo "$contenido"; // Mostrar el contenido
exec("echo $contenido > $PRINTER_PORT"); // Escribo al puerto
echo'
<form action="http://localhost/ticket.php" method="POST" >
<input type="hidden" name="contenido" value="$contenido">
<input type="submit" value="Re Imprimir">
</form>
';
?>
// Del lado del servidor armamos nuestro ticket con una consulta SQL o de alguna forma pero aqui solo mostrare el ejemplo ya armado
<?php
$contenido = "+------ Mi Ticket ------+\n
Fecha : Hoy
Cliente: Fulano de Tal
Codigo Precio Cantidad Subtotal
1 1000 2 2000\n
2 1500 2 3000\n
Total: 5000
Gracias por su preferencia
";
echo'
<form name="ticket" action="http://localhost/ticket.php" method="POST" >
<input type="hidden" name="contenido" value="$contenido">
<script>
document.ticket.submit();
</script
</form> '
?>
// Esto hará que al mostrarse se redirecciones a la maquina local
// y el otro PHP que //esta corriento localmente tome el contenido
// Para saber su funciona la ticketera como root escribe en la consola
// echo Hola Mundo :) > /dev/lp0
Hola, me gustaría saber cómo puedo agregar el usuario apache al grupo lp. Un saludo y gracias.
ResponderEliminar