Impressão Matricial em Sistema Web

Tenho um sistema swing/desktop que imprime na matricial.
Neste caso, eu abro um FileOutputStream(“LPT1”) e fico
disparando um monte de write’s, com um flush no final.

Agora, preciso implementar em um modulo web o mesmo
recurso. Contudo, a execucao do Servlet é feita no servidor
e nao na estacao. Se eu mandar para a LPT1, vai sair la na
impressora matricial do servidor (se tiver).

Alguem ja fez este tipo de coisa na web?
Lembrando que eu nao posso simplesmente gerar uma
"pagina" do tipo "text/plain" e mandar o usuario imprimir
pelo menu do navegador, pois neste caso eu estaria usando
a impressao em modo grafico, que é uma "carroca", tem
que ser algo muito agil, no modo texto "antigao" MSDOS=>LPT1.

Sugiro uma solução para isso da seguinte maneira (em uma Intranet):

  • Pega este “pedaço” da sua applicação swing que já funciona e transforme-a em um serviço;
  • Instale este serviço nas estações onde encontram-se as impressoras matriciais;
  • Crie no seu sistema web um mecanismo para cadastrar estas impressoras por IP e um alias;
  • Então, quando a app web solicitar uma impressão, vc faz o usuário selecionar qual impressora ele deseja mandar;
  • Então no servidor vc direciona esta solicitação para a impressora desejada. Então desde que o serviço esteja ok (vc pode controlar isso), funcionará corretamente.
    Espero ter ajudado

Kloss

Cara, a solução proposta pelo Rafael pode parecer bacana. Mas imagina manter isso funcionando, principalmente se forem muitas máquinas.

Porque você simplesmente não utilizar uma fonte Monospace, como Courier New ou outras, pra imprimir seu relatório?

Tá ficando muito lento usando essas fontes?

Ou faz em um applet… Applets rodam no cliente.

Acho que a solucao sera fazer a applet mesmo.
Porque tenho muitos clientes espalhados por todo lado do Brasil,
e é inviavel monitorar as impressoras…

Eu utilizo com applet para fazer impressão de etiquetas e funciona bem.
A comunicação é lpt1 também.

O applet precisa ser assinado para nao dar problema de seguranca no browser do usuario, certo?
Precisa usar um certificado digital “famoso” tipo Serasa/Certisign, ou assinado “na mao” via utilitario Java?