Login Registre-se
[Resolvido]Impressão de DANFE em impressora térmica parando antes de completar  XML
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Autor Mensagem
evandropasini

JavaC Membro

Membro desde: 04/11/2014 10:10:37
Mensagens: 19
Offline

Eu fiz a geração de DANFE NFC-e usando iReport com base em um DANFE de NF-e que eu vi aqui no forum.
O DANFE é gerado corretamente pelo meu sistema, quando visualizo com o JasperViewer ou exporto pra PDF ele aparece certinho.

Porém estou com um problema ao imprimir o DANFE nas impressoras térmicas, quando o DANFE possui até uns 10 produtos imprime certinho, mas se tem mais produtos a impressora para de imprimir antes de terminar.

A impressora usada é a Bematech MP-4200 TH, mas acho que isso ocorre em outros modelos também.
Eu já tentei mudar a configuração de tamanho da página tanto no driver da impressora quanto no jrxml mas continua parando a impressão.

Alguém tem alguma ideia do que pode ser?

Esse é o método que uso pra imprimir


E em anexo está o jrxml do meu DANFE

Agradeço desde já pela colaboração
 Nome do arquivo danfeNFCe_pagamento.jrxml [Disk] Download
 Descrição Subreport formas de pagamento
 Tamanho 3 Kbytes
 Baixado:  136 vez(es)

 Nome do arquivo danfeNFCe.jrxml [Disk] Download
 Descrição Report principal
 Tamanho 31 Kbytes
 Baixado:  160 vez(es)

Esta mensagem foi editada 1 vez. Última atualização foi em 31/12/2015 09:38:19

rfumiot

JavaC Membro
[Avatar]

Membro desde: 23/06/2015 17:19:55
Mensagens: 217
Offline

bom dia evandropasini,


como você faz a comunicação com a impressora? via dll da bematech, via comunicação direta ou via spooler?

pergunto pois a bematech 4200 possui a impressão do QRCode como função nativa, outra coisa quando tem mais
de 10 produtos a impressão é interrompida no QRCode ou quando imprime os produtos mesmo?
evandropasini

JavaC Membro

Membro desde: 04/11/2014 10:10:37
Mensagens: 19
Offline

Oi rfumiot.

A impressão é feita pelo driver do windows, eu apenas deixo ela como padrão e na hora de imprimir eu mando na impressora padrão.

A impressão para no detalhamento dos itens, nem chega a imprimir o total da venda.

Por exemplo:
Se a venda tem 12 itens, a impressora para de imprimir quando chega no 11º.
Se a venda tem 10 itens, a impressora imprime até o final, com total, identificação de cliente, chave, QRCode.. tudo certo.

Foi me passado que numa impressora térmica Epson imprimiu certo, mas na Bematech pára. Também foi testado na MP 2500 TH e acontece a mesma coisa. Agora não sei se pode ser alguma coisa do driver da bematech.

Eu até pensei que poderia ser a configuração de papel da impressora, pois tem as opções "Print width 80mm 30cm" e "Print width 80mm", mas nas duas opções a impressão pára do mesmo jeito.

Em relação a impressão do QRCode pela dll da bematech, eu até tinha visto isso, mas optei por não fazer dessa forma pois tem clientes que usam diferentes marcas de impressora e a solução via iReport era mais rápida e eu teria que mudar menos coisas no sistema.
rfumiot

JavaC Membro
[Avatar]

Membro desde: 23/06/2015 17:19:55
Mensagens: 217
Offline

e se você salvar o cupom com mais de 10 itens em pdf e imprimir fora do seu sistema será que vai?
que ai você vai conseguir saber se é uma limitação da impressora ou do jar que você está utilizando.
Pode ser que o cupom com mais de 10 itens fica muito pesado para a biblioteca
evandropasini

JavaC Membro

Membro desde: 04/11/2014 10:10:37
Mensagens: 19
Offline

Agora pra ajudar eu fiquei sem impressora pra testar.. Mas pedi pra um cliente fazer esse teste e ele disse que imprimiu tudo certo, mas ele disse que a impressão não ocupou toda a largura do papel, ficou mais estreito, mas acho que isso deve ser por causa da opção de redimensionamento que ele não soube escolher. Então o problema pode estar na forma que eu mando o comando pra imprimir ou a versão das libs que eu uso.
macega

JavaC Membro

Membro desde: 08/07/2015 10:17:16
Mensagens: 46
Offline

tente imprimir em papel A4 e ve no que vai dar ou te mesmo matricial, se imprimir normal vai ser configs da impressora alterar tamanho de papel criar o tamanho correspondente com o formulário de impressão. isso enche muito o saco
evandropasini

JavaC Membro

Membro desde: 04/11/2014 10:10:37
Mensagens: 19
Offline

Consegui uma impressora pra testar.

O que acontece é que a Bematech limita a página pra uma altura máxima de 30cm.. então quando a impressão chega nesses 30 cm ela pára de imprimir. Então como meu DANFE estava com a opção "ignore pagination" habilitada então o DANFE poderia ficar com altura maior que 30 cm.

Até se exportar pra PDF fica limitado nesse tamanho e não achei nenhuma configuração pra mudar esse tamanho de página ou tirar a limitação.

Eu mudei meu jrxml pra quebrar o DANFE em páginas e assim a impressora imprime todo o DANFE, mas fica um espaço em branco no meio do DANFE onde há a quebra de página.

Eu só acho estranho ter essa limitação na altura da página já que a impressora usa rolo de papel contínuo.
rfumiot

JavaC Membro
[Avatar]

Membro desde: 23/06/2015 17:19:55
Mensagens: 217
Offline

se voce pegar seu danfe e tentar imprimir pelo bematech user você consegue?
evandropasini

JavaC Membro

Membro desde: 04/11/2014 10:10:37
Mensagens: 19
Offline

Tentei imprimir pelo Bematech User, mas acho que ele só imprime certo se passar arquivo texto. Mas como o sistema gera o DANFE em formato binário sai tudo zuado, imprime apenas um monte de caracteres.

brasvidal

JavaC Membro

Membro desde: 13/10/2015 11:00:44
Mensagens: 1
Offline

Olá amigos, sou novo no forum, Sou autorizado bematech e entendo a frustração que é a impressão, quando ela ultrapassa os 30 centímetros.

Isso se dá, devido a uma limitação da DLL da bematech no driver do windows.

Uma forma para corrigir isso é enviar o comando de impressão direto para a impressora.

para isso, mapeie a impressora no computador local \\127.0.0.1\impressora

Em vários softwares, os desenvolvedores solicitam uma placa ethernet para a impressora bematech mp4200 TH. Mas o recurso do localhost funciona também...

Bematech sempre foi bugada para impressão via driver original. aquela 'com' virtual nunca funciona.
GGarcia

JavaC Membro

Membro desde: 28/05/2013 17:12:21
Mensagens: 161
Offline

Cara, isso acontece também com as Epson TM-T20.

Na verdade, aconteceu com toda e qualquer impressora térmica que testei.

Como faço meus DANFES "na mão" usando o PDFBox, no momento de gerar o arquivo eu vejo se cai exceder os 30 cm e pagino ele, seguindo o XML como se fosse uma única folha.

O que acontece nessas horas é que o espaçamento entre uma folha e outra fica em torno de 3-4mm. Nota-se uma certa quebra no fluxo da impressão, mas o documento segue normalmente.

Apenas configure a impressora para cortar o papel ao fim do documento e não a cada página que fica tudo certo.

If you're here, who's running hell?
evandropasini

JavaC Membro

Membro desde: 04/11/2014 10:10:37
Mensagens: 19
Offline

Como solução provisória eu mudei o meu danfe pra quebrar página também. Funciona bem na maioria dos casos, mas dependendo da quantidade de itens, a banda summary (onde ficam os totais, cliente, qrcode, etc...) não cabe na mesma página então pula pra próxima e deixa um espaço em branco no meio do danfe.

brasvidal, obrigado pela dica, assim que possível vou testar isso.

GGarcia, acho que pra ter menos problemas eu teria que refazer meu danfe, e fazer como você fez, assim da pra controlar as quebras de página.. pelo jasper não dá pra controlar (na verdade não sei se dá.. hehe).

evandropasini

JavaC Membro

Membro desde: 04/11/2014 10:10:37
Mensagens: 19
Offline

Apenas pra finalizar o tópico.

Eu refiz meu Danfe usando itext, assim o controle de quebra de página fica por conta do itext mesmo.

Obrigado a todos pela ajuda.
samuelpc7

JavaC Membro

Membro desde: 08/08/2016 09:36:04
Mensagens: 19
Offline

evandropasini wrote:Apenas pra finalizar o tópico.

Eu refiz meu Danfe usando itext, assim o controle de quebra de página fica por conta do itext mesmo.

Obrigado a todos pela ajuda.


seria possivel vc disponibilizar esse arquivo pra gente?
se possivel tbm o metodo q vc chamou pra invocar essa impressão...
desde ja grato pela atencao e ate +
evandropasini

JavaC Membro

Membro desde: 04/11/2014 10:10:37
Mensagens: 19
Offline

Opa, claro.

Pra facilitar eu juntei o principais métodos que eu uso em uma mesma classe.

Algumas libs que eu uso são Itext, PDFRenderer, JodaTime e a lib de NFE como a encontrada aqui no forum.

Se eu esqueci de alguma coisa avisa.

 
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Ir para:   
Powered by JForum 2.1.9 © JForum Team