Logo Hardware.com.br
Tiago Neves
Tiago Neves Novo Membro Registrado
34 Mensagens 0 Curtidas

Projeto de Impressora Fiscal com PHP.

#1 Por Tiago Neves 24/09/2006 - 14:01
Olá,
Pessoal estou propondo aqui um lugar onde podemos fazer o nosso querido Linux se comunicar com uma impressora fiscal por PHP.
Não estou postando este tópico porque sei completamente como fazer pois estou iniciando em PHP mas sou programador em outras linguagens de longa data, mas sim para formar uma equipe para fazer o projeto, se você conhece PHP, participe e de sua dica! :wink:

A primeira coisa que temos a fazer é instalar o APACHE e o PHP.
No kurimin pra mim foi facílimo.


#apt-get install apache2
#apt-get install php5


depois temos que configurar o apache para aceitar o PHP, mais isso você encontra no tutorial do MIRAMOTO aqui neste site mesmo é só procurar pra quem não sabe como.

Agora vem o lance...

No site da Bematech (http://www.bematech.com.br) tem dois downloads para ajudar nessa tarefa um é por biblioteca de funções em C e outra é uma tecnica onde criamos um arquivo em uma pasta com comandos e um programa transfere isso para a impressora, acredito ser essa a melhor forma de fazer a coisa.

Questões a serem solucionadas:

1 - Como gravar um arquivo BemaFILX.cmd em PHP configurando permissões e tudo.
2 - Testando os comandos.
3 - Uma aplicação completa.
  • Abre cupom
  • Vende

  • Tipo de pagamento
  • Fecha cupom


O intuito aqui é apenas criar uma aplicação simples de começo para deixa como consulta.

Assim que eu tiver algo em mãos estou postando....

Abraços
Tiago Neves
Tiago Neves Novo Membro Registrado
34 Mensagens 0 Curtidas
#2 Por Tiago Neves
24/09/2006 - 20:42
Vou postar um código que achei na NET mais ainda não testei.
O Autor dele é o Sr. Davison Alves Elias, e explicações melhores vocês iram encontrar em http://deivison.agatetepe.com.br/php/impfiscal.html.

Segue o Código


function envia_dado($dado) {
// A variável $dado contém as informações que serão enviadas para impressora fiscal
$fp = fopen("bemafilx.cmd","w" // abre o arquivo de comandos
fwrite($fp,$dado);
fclose($fp);
$executa = "./bemafilx.out";
$comando = `$executa`; // executa o aplicativo "bemafilx.out"

if (file_exists("status.txt&quot) { // pega as informações do arquivo 'status.txt'
$filename = "status.txt";
$fd = fopen ($filename, "r"
$status = fread ($fd, filesize ($filename));
fclose ($fd);
$fp = fopen("status.txt","w"
// logo depois de ler o arquivo ele deixa em branco o conteúdo do arquivo
fwrite($fp,""
fclose($fp);
} else {
$status = "";
}

if (file_exists("retorno.txt&quot) { // lê o conteudo do arquivo de retorno
$filename = "retorno.txt";
$fd = fopen ($filename, "r"
$retorno = fread ($fd, filesize ($filename));
fclose ($fd);
chmod ("retorno.txt", 0666);
$fp = fopen("retorno.txt","w"
// deixa em branco o conteúdo do arquivo de retorno
fwrite($fp,""
fclose($fp);
} else {
$retorno = "";
}
return $retorno;
}


Estou usando uma maquina virtual e vou tentar fazer isso com o programa de teste da própria bematech, no windows.

Por favor...
Tentem colaborar sei que é difícil mas vamos lá gente!!!

Abraços
Tiago Neves
Lang: ASP : PHP : C
www.maiatecnologia.com.br
Tiago Neves
Tiago Neves Novo Membro Registrado
34 Mensagens 0 Curtidas
#3 Por Tiago Neves
24/09/2006 - 20:45
Só pra explicar o código a cima que postei...

ELE SERVE PARA O PRIMEIRO PASSO DE TUDO!

Ele escreve o arquivo de comando executa o programa da Bematech e le o retorno passando para a função.

Essa função será usanda durante todo o projeto.... agora falta como passar as funções e como liberar para escrita o apache que ainda não sei :cry: .

até
Tiago Neves
Lang: ASP : PHP : C
www.maiatecnologia.com.br
Tiago Neves
Tiago Neves Novo Membro Registrado
34 Mensagens 0 Curtidas
#4 Por Tiago Neves
20/12/2006 - 01:53
Olá pessoal,

para que o PHP com servidor Apache consiga rodar ECF é necessário colocar o www-data no grupo de usuário "dialout" ou o grupo que pertence a saida de dados "ttySO" ou seja a com1 para que os comandos seja executados.

Outra coisa que considerei é fazer a coisa por ajax para não precisar ficar recarregando a página, e usar ajax sem usar o objeto requestXML por causa da segurança do linux.

Postarei a coisa toda quanto tiver algo plausível de demonstração mais o caminho é esse...

bom por enquanto é só... mas alguém podia colaborar... rsrsrs
Tiago Neves
Lang: ASP : PHP : C
www.maiatecnologia.com.br
Tiago Neves
Tiago Neves Novo Membro Registrado
34 Mensagens 0 Curtidas
#5 Por Tiago Neves
20/12/2006 - 03:24
::: Funções :::

Leitura X

chr(27) + |06| + chr(27)

Abre cupom

chr(27) + |00| + chr(27)

os commando podem ser estudados pelo exemplo que vem junto com a o programa de serviço de impressão da bematech o "testelx.out"

Você vai enviando os comandos e vai vendo como escreve eles no arquivo criado bemafilx.cmd.

Até mais....
Tiago Neves
Lang: ASP : PHP : C
www.maiatecnologia.com.br
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal