Imprimindo em nota fiscal

Pessoal alguém poderia me dar alguma dica de como imprimir nos campos de uma nota fiscal? Ou alguma outra idéia de como fazer impressão de relatórios. Sei que existe o JasperReport mas até agora não consegui imprimir nada com ele.

Tb preciso de alguma ferramenta para relatórios, tô com jfreereport mas não peguei bem como se mexe nele. Taí uma boa: que tal um tutorial de fazer relatórios com Java, quem souber mãos a obra.

Olá

  1. Notas fiscais

As notas fiscais devem ser impressas em impressoras fiscais, as famosas ECFs. Isto vale tanto para as vendas como para os boletos de cartão de crédito.

Antigamente a gente para imprimir em uma ECF precisava programar em C ou assembler para cada impressora em particular. Eu mesmo fiz isso em assembler. É óbvio que ficava um legado dificil de manter. Colocar uma nova funcionalidade significava mexer nos programinhas de todas as impressoras. E havia um monte delas no mercado.

Logo alguém viu que seria melhor criar uma interface padrão que TODOS os fabricantes deveriam respeitar. Assim cada fabricante desenvolve sua biblioteca compartilhada (dll no windows, shared library no Unix) que pode ser acessada pelos sistemas de frente de caixa ou de TEF na captura de cartões de crédito.

Pelo exposto, os sistemas tanto em Java como em qualquer outra linguagem não devem acessar diretamente a impressora fiscal. Devem trocar informações com a biblioteca compartilhada fornecida pelo fabricante da ECF.

O Java não consegue chamar diretamente um método dentro de uma “dll” ou uma “so”. Precisamos usar como intermediário o nosso amigo das horas dificeis que é o JNI. É isso que você deve estudar e não é tão dificil assim.

  1. Relatórios

Todas as ferramentas que tentei usar para fazer relatórios direto do Java me decepcionaram. Quem não ficar satisfeito criando relatórios em PDF e contando com o Windows (ou Linux) para imprimir o PDF sem avisar ao Java se deu certo ou não, sabe o que pode fazer?

  • Criar uma aplicação em uma outra linguagem própria para relatórios e deixa-la rodando direto no cliente. Ela ficará lendo o conteúdo de um diretório qualquer ou recebendo conteúdo por sockets.

  • O Java cria o relatório em txt, xml ou qq outro formato. Envia para o programinha por sockets ou grava o tal arquivo, neste caso de preferência criptografado.

  • A criação pode ser feita no próprio servidor ou no cliente se for uma aplicação do tipo applet. A gravação no cliente precisará de uma applet com permissões para tal. Se nossa aplicação for do tipo com interface web, precisaremos na página HTML de javascript para falar com a applet usando JSObject. Ou então que a aplicação que imprime relatório escute HTTP para receber GETs ou POSTs da página HTML.

  • A outra aplicação lê o tal arquivo, formata o relatório bonitinho como o chefe pediu, imprime e avisa ao sistema Java que a impressão terminou.

Complicado? Se nosso trabalho fosse simples a gente ganhava só mil real…

[]s
Luca

Se vcs tem tantos relatorios pra gerarem. Falem com a chefia pra comprar 1 bom gerador de relatorios, como o Crytal, ele funciona com java por sinal.