Skip to content

API para impressão em impressoras POS (Point of Sales) térmicas.

License

Notifications You must be signed in to change notification settings

betowebti/posprint

Repository files navigation

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads Latest Unstable Version License

posprint

API para impressão em impressoras termicas POS (Point of Sales). Usadas em caixa de redes varejistas.

ATENÇÃO ESTE PACOTE AINDA ESTÁ EM FASE ALPHA E NÃO É FUNCIONAL.

Necessitamos de colaboradores !

O modo de funcionamento desta API é pelo envio de comandos diretos (RAW) para a impressora, sem a necessidade de uso de drivers especificos. E está construída com base nos comandos Esc/Pos disponíveis para as impressoras de vários fabricantes (marcas e modelos escolhidos com foco no mercado Brasileiro dessas impressoras).

Os fabricantes a seguir estão inclusos nessa API, porém nem todos os modelos dessas marcas irão funcionar devido a disponibilidade de recursos oferecidos pelo seu próprio firmware. (Os modelos indicados por enquanto são mera informação de base, ainda não foram feitos todos os testes funcionais reais).

  • EPSON (TM-T20)
  • DARUMA (DR700)
  • BEMATECH (MP-4200 TH)
  • ELGIN (VOX)
  • STAR (BSC-10)
  • SWEDA (SI-300)
  • DIEBOLD (TSP143MD/MU)

Esta API deve prover acesso as impressoras térmicas conectadas atraves de várias formas de conexão e em qualquer sistema operacional, dependendo apenas da correta intalação e configuração da conexão, sem a necessidade de drivers especificos para cada S.O. (apenas um driver RAW padrão em alguns casos) :

  • Serial
  • Paralela
  • USB
  • Cups Print Server
  • Windows Printer Server
  • IPP
  • LPR
  • Web (qz.io java)

Prerequisitos PHP

  • PHP >= 5.6
  • ext-gd (para tratamento das imagens e logos)
  • estudando a possibilidade de uso de ext-imagick

Referencias

Funcionamento básico

  • Carrega classe do conector apropriado
  • Carrega classe da impressora apropriada
  • Envia a sequencia de comandos usando as funções básicas da interface e da classe de impressora
  • Envia os comandos para a impressora usando o conector escolhido

NOTAS DOS COLABORADORES

O problema que encontramos, foi na classe PhpSerial, pois o autor resolveu executar os comandos do windows para alteração de porta separadamente. Porem no windows, toda vez que o comando "mode PORTA" é executado, se passado algum parametro, os outros voltam ao default. E a impressora deve funcionar com a porta da forma que está na imagem abaixo.

Alt CMD ​ Para isso acontecer voce deve alterar as linhas do arquivo posprint-master/vendor/hyperthese/php-serial/src/PhpSerial.php

    //$this->_device = "\\.com" . $matches[1];
    $this->_device = "COM" . $matches[1];

Foi alterado essa linha pois o windows não abre porta serial com o comando "\.com" e sim "COM"

Depois fizemos outra alteração que é na linha abaixo.

 "mode " . $this->_winDevice . " PARITY=" . $parity{0},
 "mode " . $this->_winDevice . " DATA=8 PARITY=" . $parity{0},

A alteração foi necessária devido a explicação feita no inicio do e-mail.

Pessoal, essas alterações foram feitas apenas para testes no windows utilizando a porta serial, lembrando que esse não é o intuito do projeto.

Atenciosamente,

R Ribeiro Soares

About

API para impressão em impressoras POS (Point of Sales) térmicas.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%