Hoy vamos a hablar sobre el mensaje de error al usar la librería de Mike42 para impresoras térmicas. El error dice:
Uncaught InvalidArgumentException: No suitable EscposImage implementation found for ‘imagen.jpg’.
Básicamente dice que no encuentra una implementación para la imagen (PNG o JPG) que se quiere imprimir. En este post te mostraré la solución.
Explicación del problema
El error No suitable EscposImage implementation found al imprimir en la impresora térmica se ocasiona porque la librería no encuentra una manera de trabajar con imágenes.
Dicha librería soporta al menos Imagick y GD, pero para que las pueda usar debemos habilitar una de estas extensiones.
Entonces debemos habilitar la extensión GD (Graphics Draw) modificando el archivo php.ini. Yo te voy a mostrar instrucciones para Windows con XAMPP, pero puedes aplicarlo para otros entornos.
Aquí tengo un tutorial para Linux.
Habilitando extensión gd
Vamos a editar el archivo php.ini
que está ubicado en C:\xampp\php\php.ini
. Recomiendo abrirlo con Visual Studio Code. Una vez abierto vamos a buscar la línea que dice:
;extension=gd
Y la vamos a cambiar por:
extension=gd
Básicamente estamos quitando el punto y coma que se encuentra al inicio de la línea y que funciona como carácter de comentario.
Guarda los cambios de php.ini.
Reiniciar Apache
Para que los cambios surtan efecto y la extensión Graphics Draw quede habilitada debes reiniciar el servidor Apache. Abre el panel de control de XAMPP, haz clic en Stop en el módulo de Apache y después elige Start.
Una vez reiniciado, el error No suitable EscposImage implementation found de PHP con impresoras térmicas ESC POS debería estar solucionado.
Prueba mi plugin
Para evitar más problemas como estos puedes usar mi plugin gratuito para impresoras térmicas que provee una API consumible desde cualquier lenguaje de programación y es compatible con un diseñador de tickets.
Anexos
Puede que encuentres información adicional en: https://github.com/mike42/escpos-php/issues/347