Hace algún tiempo te mostré cómo imprimir tickets en impresora térmica con PHP puro usando la maravillosa librería de Mike42, ahora te mostraré cómo hacerlo e integrarlo dentro del framework Laravel.

Al final vamos a imprimir un ticket usando Laravel, desde una ruta que va a invocar a un controlador.

Instalación de la librería

Debido a que Laravel utiliza composer para gestionar sus dependencias no hay problema en instalar la librería de esc pos usando este método. Para ello en tu proyecto abre una terminal y ejecuta:

composer require mike42/escpos-php

Espera a que se instale. Si pide extensiones habilítalas. Se debe ver así:

Instalando librería escpos-php en Laravel para imprimir tickets

Inclusión de la librería

Puedes invocar a los métodos desde donde tú quieras, para hacerlo simplemente indica que usarás el espacio del nombre de la librería. Lo bueno es que el autoload ya está incluido.

En este caso usaré WindowsPrintConnector porque estoy en Windows, y Printer es obligatorio para la impresora.

Imprimir primer ticket con Laravel

Ahora, desde cualquier método, ruta, controlador, etcétera podemos imprimir el ticket. Yo lo haré dentro de un controlador y queda así:

Recuerda que aplican las mismas reglas que cuando lo hicimos con PHP puro; es decir, si no tienes los controladores debes instalar la impresora como genérica y compartirla. El paso de compartirla es muy importante.

Al invocar a ese método desde una ruta, el resultado es:

Ticket impreso con Laravel y ESC POS

A partir de este ejemplo puedes imprimir tickets más complejos, tickets de venta, imágenes, etcétera.Yo ando haciendo este tutorial porque estoy trabajando en un punto de venta open source de Laravel que publicaré muy pronto.

Relacionado:  Configurar VSCode y Vetur para programar con Vue

Te invito a mirar más tutoriales de Laravel en mi blog.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 758 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

6 Comments

Moises · agosto 31, 2020 a las 1:40 pm

Amigo, no puedo encontrar la forma de imprimir el logo, es muy importante para mi imprimirlo, pero no lo encuentra el plugin 🙁 necesito saber por qué es, crees que puedas apoyarme?

Moises Galvan · agosto 12, 2020 a las 7:29 pm

Amigo, buenas tardes, una disculpa, es que estoy queriendo imprimir el logo en el ticket desde un controller en laravel pero no encuentra la foto, necesito saber cual es la url correcta para que jale una imagen que esta en la raiz del proyecto si yo estoy queriendo llamarla desde un controller con esta instrucción:
try{
$logo = EscposImage::load(“logo.png”, false);
$printer->bitImage($logo);
}catch(Exception $e){/*No hacemos nada si hay error*/}

    parzibyte · agosto 13, 2020 a las 1:17 am

    Hola. Debe tratar de encontrar la ruta absoluta. Supongo que está en un controlador, su imagen debe estar en el mismo directorio del controlador, y si no, para indicar la ruta relativa, puede usar “../logo.png” si su imagen está un directorio arriba, etcétera; o encontrar la ruta absoluta usando por ejemplo base_path() y luego concatenando.
    Saludos 🙂

Eduardo · junio 2, 2020 a las 9:08 pm

Señala algunos problemas:

Problem 1
– Installation request for mike42/escpos-php ^3.0 -> satisfiable by mike42/e
scpos-php[v3.0].
– mike42/escpos-php v3.0 requires ext-intl * -> the requested PHP extension
intl is missing from your system.

To enable extensions, verify that they are enabled in your .ini files:
– C:\xampp\php\php.ini
You can also run `php –ini` inside terminal to see which files are used by PH
P in CLI mode.

Installation failed, deleting ./composer.json.

    parzibyte · junio 2, 2020 a las 11:04 pm

    Hola. Por favor lee los mensajes de error. Te está diciendo que habilites la extensión intl.
    Te invito a ver un vídeo de instalación de un sistema de Laravel en donde se usa esta librería: https://www.youtube.com/watch?v=HINrotzpaSs
    Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: