Git Product home page Git Product logo

posprint's Introduction

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

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

Instalação (Install)

Via Composer

$ composer require nfephp-org/posprint

Exemplo de Uso (Usage)

$filename = "/tmp/epson.prn";
$connector = new Posprint\Connector\File($filename);
$printer = new Posprint\Printers\Epson($connector);
$printer->initialize();
$printer->setBold();
$printer->text("Hello World !!");
$printer->setBold();
$printer->lineFeed(2);
$printer->setAlign("C");
$printer->text("CENTRAL");
$printer->lineFeed(2);
$printer->cut();
$printer->send();

Log de Alterações (Change Log)

Por favor veja o Log de Alterações para mais informações sobre as mudanças mais recentes. Please see CHANGELOG for more information what has changed recently.

Testando (Testing)

$ composer test

Contribuindo (Contributing)

Por favor leia como contribuir em CONTRIBUTING e nosso Código de Conduta para maiores detalhes. Please see CONTRIBUTING and CONDUCT for details.

Security

Caso você encontre qualquer problema relacionado a segurança, informe diretamente o mantenedor [email protected] ao invés de abrir uma ISSUE no github. If you discover any security related issues, please email :author_email instead of using the issue tracker.

Creditos (Credits)

I must thank and a lot to these developers because without his help the availability of their works under open licenses would not be possible to develop this project.

Licenças (License)

Este pacote está sendo disponibilizado sob as licenças LGPLv3 ou GPLv3 ou MIT, verifique o arquivo Licenças para maiores informações. The LGPLv3, GPLv3 and MIT License. Please see License File for more information.

posprint's People

Contributors

carusogabriel avatar offboard avatar renangaleno avatar robmachado avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

posprint's Issues

Abrir janela de impressão

Pessoal, estou tendo problemas em fazer abrir a janela de impressão do arquivo.
Para gravar em arquivo, ou mostrar na tela está td ok.
Mas abrir a janela de impressão, acho que meu conhecimento não alcança.
hehehehehe

Alguém pode passar uma dica?

Refatorar Conectores

Refatorar as classes responsáveis por gerir os conectores para as diversas interfaces físicas (USB, Serial, etc..)

Refatorar Classe Epson

Refatoramento da classe para gerar todos os comandos RELEVANTES necessários para a impressão do NFCe.

Refatorar Classe Elgin

Refatoramento da classe para gerar todos os comandos RELEVANTES necessários para a impressão do NFCe.

Composer não funciona!

Boa tarde,

estou tentando instalar via composer mas retorna o seguinte erro:
The "https://packagist.org/packages.json" file could not be downloaded: php_network_getaddresses: getaddrinfo failed: Name or service not known
failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known
https://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date

[Composer\Downloader\TransportException]
The "http://packagist.org/p/nfephp-org/posprint%246af4c56c4490ef32ce87584ea3cb8a8bec10834b06a783b4c94eabb8427cdca7.json" file could not be downloaded: php_network_
getaddresses: getaddrinfo failed: Name or service not known
failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known

Epson TM-T88v 4-bit grayscale image

Hello

first of all, thanks for your effort to publish this code!

I have an Epson TM-T88V printer which is capable to print a 4-bit PNG grayscale / multi tone image. I didn't manage it yet to produce raster code which is accepted by the printer. Do you have any plans to provide a PHP function to provide such raster code? As far as I've seen in your code your translating images to 1-bit BW.

Posted the same request here, as I'm a bit lost:
mike42/escpos-php#154

Thanks in advance
ninsky

Refatorar Classe Daruma

Refatoramento da classe para gerar todos os comandos RELEVANTES necessários para a impressão do NFCe.

Refatorar Classe Bematech

Refatoramento da classe para gerar todos os comandos RELEVANTES necessários para a impressão do NFCe.

Impressão de bitmap em Bematech MP4200

Boa tarde. Essa classe já é funcional para impressão de bitmap na bematech MP4200TH via comando direto? Tentei de tudo e não consegui fazer funcionar.

Package endroid/qrcode is abandoned

Bom dia, não sei se é do conhecimento do(s) desenvolvedor(es), porém ao realizar o require ou update no composer, desse projeto, obtenho o seguinte aviso:

Package endroid/qrcode is abandoned, you should avoid using it. Use endroid/qr-code instead.

se isso já for de conhecimento, favor ignorar.

Obrigado.

Não imprime qr code Epson TM-T20?

Ate onde vi estou fazendo tudo certo, mas não estou conseguindo imprimir o qrcode a impressora Epson, eis o que esta gerando na hora que executa o código.
[ESC] ! [NUL] [ESC] M (01h) [ESC] a (01h) [ESC] d (01h) Consulte via Leitor de QRCode [ESC] d (01h) ---------------------------------------------------------------- [GS] (k [EOT] [NUL] 1A1 [NUL] [GS] (k (03h) [NUL] 1C [ENQ] [GS] (k (03h) [NUL] 1E0 [GS] (k [EM] [NUL] 1P0TESTE DE GERAR QR-CODE [GS] (k (03h) [NUL] 1Q0 [ESC] E (01h) [ESC] d (01h) ---------------------------------------------------------------- NOTA FISCAL INVALIDA - SEM PROTOCOLO DE AUTORIZACAO [ESC] d (01h) ---------------------------------------------------------------- [ESC] ! [NUL] [ESC] M (01h) [ESC] d (03h) [GS] VB (03h)

se alguém passou pelo mesmo problema puder ajudar,

qrcode is abandoned

Olá, toda vez que dou o comando composer update retorna a mensagem:

Package endroid/qrcode is abandoned, you should avoid using it. Use endroid/qr-code instead.

Estou usando PHP 7.3
Atualizo dentro da mesma pasta desde a versão 5.86 do speed-nfe.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.