Ir ao conteúdo
  • Cadastre-se

Javascript Impressões Múltiplas Impressoras, Automáticas Navegador


Posts recomendados

Olá pessoal,

 

sou responsável por um sistema web, e hoje preciso de um "norte" do que fazer.

Preciso imprimir automaticamente impressões - os dados vem de um ajax formato JSON.

Antes de mais nada, as impressões são de recibos impressos em impressoras térmicas (como por exemplo um Epson t20 da vida).


O que acontece é que teria que ir "jogando" as impressões de forma AUTOMÁTICA, ou seja, ficariam sendo feitas as impressões sem usuário operar o navegador/aplicativo. Exemplo: produtos A vão para impressora A e produtos B vão para impressoras B.

Via navegador, consigo fazer com que o firefox e chrome façam a impressão automática com parâmetros específicos no navegador e javascript que vai fazendo a impressão utilizando setTimeout. Porém, hoje tenho clientes utilizando somente 1 impressora.

O problema vai ser quando o cliente quiser jogar na impressora A e B. Nesse caso, como é feito hoje, teria que ser aberto mais um navegador... e assim seria sucessivamente, usuário teria que ficar abrindo novos navegadores (1 navegador para 1 impressora), configurar esses navegadores para impressões automáticas... ou seja, pouco prático.

 

Preciso de alguma forma de automatizar isso... pegar os dados via json, e jogar a impressão para impressora A, B ou quantas impressoras formem necessárias, conforme necessidade.

 

Acredito que terá que ser uma solução via Desktop.... ou tomara que eu esteja errado hahah 

Porque via navegador já está implementado e via desktop terei que fazer tudo novamente: login no sistema, obter json de impressões, configurar qual impressora será impressa, listagem de impressoras, claro a impressão em si e assim vai.

 

Pensei também no electon.

 

Enfim, se alguém já passou por esse problema e puder ajudar.

 

Obrigado.

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

@xinaidao Bom, infelizmente e impossível você força uma impressão via javascript dentro do navegador, munto menos configurar preferencias de impressora, já que o javascript dentro do navegador não tem acesso ao shell.

 

A unica solução é você utilizar uma linguagem de desktop para isso, até onde eu sei o node.js tem acesso ao shell é isso pode resolver os eu problema.

 

Você também pode criar um aplicativo/programa que se conecte com sua página web, assim você repassa a solicitação da impressão para esse aplicativo e ele seleciona a impressora de acordo com sua solicitação.

Link para o comentário
Compartilhar em outros sites

Na realidade tem sim como forçar uma impressão, como mencionei acima, através do "kiosk-printing" para chrome.. cada navegador tem seu parâmetro.

O problema é que ao imprimri automaticamente, obviamente uma impressora ja foi configurada, entao vai sair sempre nela..

ou seja, 1 navegador para 1 impressora.

 

sim,

acredito que a solucao seja criar um app desktop que vai jogando para as impressoras.

 

 

valeu

Link para o comentário
Compartilhar em outros sites

Fala amigo beleza?

 

Eu desenvolvi um sistema de restaurante que o tablet dos garçons deveriam enviar os dados para as impressoras (no caso, cozinha, balcão e se solicitado para a gerencia), o que fiz para definir as múltiplas impressoras e não precisar pedir permissão para impressão e realizar a troca na mesma página foi:

 

* Para impressoras mais novas que continham acesso a rede: defini um ip / porta local.

* Para impressoras antigas sem acesso a rede: utilizei o PC e compartilhei a impressora na rede local.

Para ambas deve-se definir um IP FIXO!!!

____________
Os ips e portas das impressoras você pode guardar em uma tabela no banco de dados, para realizar a impressão utilizei Socket no PHP, desse modo conseguia enviar a requisição para a impressão do documento sem pedir permissão, direto do server, ou seja, o cliente clicava no botão da impressora 1 e a impressora 1 imprimia, ele clicava no botão da impressora 2 e a impressora 2 imprimia, sem janela, sem ter q trocar de navegador, tudo na mesma página.

 

Não sei se entendi direito como você gostaria de fazer ali em cima, no caso, o que eu entendi foi: um produto especifico vai para uma impressora em especifico!

Nesse caso você teria de setar uma referencia da impressora especifica em cada produto no banco de dados, ao fazer o JSON com as informações teria de ser referenciada novamente a impressora junto ao produto, ele enviaria para o server que por si enviaria para a impressora.

 

Espero ter ajudado, grande abraço.

Link para o comentário
Compartilhar em outros sites

Fala @ArThDsl 

Problema disso, é ter para cada cliente essa configuração... no caso ele ou alguém da equipe terá que fazer essa configuração de impressoras e isso se torna trabalhoso.

 

Acho que vou acabar indo pro lado de java desktop, cadastrar as impressoras, e no web largar em json para ele ir fazendo a impressão, dai deixo fazendo o pool http para pegar esse json a cada 20 30 segundos.

 

Problema da sua ideia é o que é web programa, multi client, no caso não sei bem como seria largar via php socket pois está num servidor web e não servidor local.

Não teria como fazer  ( acho né, pois abririam socket na máquina web e não do cliente onde está a impressora).

 

 

obrigado mesmo assim por compartilhar, sempre bom... se fosse local mesmo faria via socket.

valeu

 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!