IMPRIMINDO DIRETO PARA A LPT1 PROBLEMA
Saudações.
Tenho um programa que estou usando desta forma para imprimir naquelas impressorinhas não-fiscais pois tento evitar o problema de a impressora cuspir papel altura A4 acabando com bobina e a paciência do cliente:
Open “LPT1†for output as #1
Print #1, “teste teste teste teste teste ...
...
...
Close #1
---------------------------------------------------------------------------------------------------------
Beleza o texto imprime sem problemas, mas depois de algumas vendas (impressões), os próximos cupons vem com texto misturado parcialmente de outros cupons anteriores, ou seja, me dei mal. Acredito que o buffer da impressora (não do spool do windows visto que a impressão vai direto para a porta LPT1) não limpa corretamente e nas impressões posteriores estes resquÃcios aparecem. Posso estar enganado.
A ajuda que eu solicito é:
1 – Será que tem como evitar este problema por enviar para a porta de impressão algum caracter especial tipo Chr(qualquercoisa) ? Se for qual?
2 – Senão, dá pra ser bem sucedido com estas impressorinhas usando estas APIs :
Public Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As Long
Public Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As DOCINFO) As Long
Public Declare Function EndDocPrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function StartPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function EndPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function WritePrinter Lib "winspool.drv" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long
Public Type DOCINFO
pDocName As String
pOutputFile As String
pDatatype As String
End Type
Mais uma vez conto com a ajuda de vocês pessoal!!!
Tenho um programa que estou usando desta forma para imprimir naquelas impressorinhas não-fiscais pois tento evitar o problema de a impressora cuspir papel altura A4 acabando com bobina e a paciência do cliente:
Open “LPT1†for output as #1
Print #1, “teste teste teste teste teste ...
...
...
Close #1
---------------------------------------------------------------------------------------------------------
Beleza o texto imprime sem problemas, mas depois de algumas vendas (impressões), os próximos cupons vem com texto misturado parcialmente de outros cupons anteriores, ou seja, me dei mal. Acredito que o buffer da impressora (não do spool do windows visto que a impressão vai direto para a porta LPT1) não limpa corretamente e nas impressões posteriores estes resquÃcios aparecem. Posso estar enganado.
A ajuda que eu solicito é:
1 – Será que tem como evitar este problema por enviar para a porta de impressão algum caracter especial tipo Chr(qualquercoisa) ? Se for qual?
2 – Senão, dá pra ser bem sucedido com estas impressorinhas usando estas APIs :
Public Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As Long
Public Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As DOCINFO) As Long
Public Declare Function EndDocPrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function StartPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function EndPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Declare Function WritePrinter Lib "winspool.drv" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long
Public Type DOCINFO
pDocName As String
pOutputFile As String
pDatatype As String
End Type
Mais uma vez conto com a ajuda de vocês pessoal!!!
Companheiro, ja tentou instalar a impressora generica somente texto?
Trabalho com essas impressora , e com este metodo ja faiz um tempao.. e nunca tive esse problema..
Tenta i
Trabalho com essas impressora , e com este metodo ja faiz um tempao.. e nunca tive esse problema..
Tenta i
Amigo...
Tenho um sistema rodando no mercado a 5 anos, e a tela de vendas dele faz como vc fez abrindo direto a lpt1...
E nunca tive problema algum... funciona blz...
Qt aos caracteres chr() sao comandos q vc envia para impressora, como negrito, tamanho, enter, etc... so q esses comandos mudam de impressora para impressora. entao eu nao uso nenhum ai o cliente nao tem problema de trocar a impressora.
O q vc pode tentar fazer e o seguinte... excluir todas as impressoras que tiverem instaladas, pois nao precisa de nenhuma.
E configurar no setup da maquina a porta LPT1 PARA ECP.
Nao deixe impressora alguma instalada nas maquinas, pois pode ser o driver de alguma monitorando a porta.
Amigo, bom dia!
Estou concluindo um sistema para restaurante e estou utilizando esta impressora nao fiscal (bematech).
Nos testes que estou realizando, ocorria este mesmo problema, e a solução foi esta do ADVANCE, ou seja, elimine todas as impressoras instaladas, e instale a impressora(nao fiscal) do fabricante pelo utilitario do mesmo.
Além disso, utilize as proprias funçõesda DLL da impressora, que com certeza será corrigido este problema.
Se for Bematech, acesse o site deles e veja alguns exemplos de como utiliza-las
espero te ajudado,
Emanuel
Estou concluindo um sistema para restaurante e estou utilizando esta impressora nao fiscal (bematech).
Nos testes que estou realizando, ocorria este mesmo problema, e a solução foi esta do ADVANCE, ou seja, elimine todas as impressoras instaladas, e instale a impressora(nao fiscal) do fabricante pelo utilitario do mesmo.
Além disso, utilize as proprias funçõesda DLL da impressora, que com certeza será corrigido este problema.
Se for Bematech, acesse o site deles e veja alguns exemplos de como utiliza-las
espero te ajudado,
Emanuel
Tópico encerrado , respostas não são mais permitidas