impressora pausada windows exclui

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

impressora pausada windows exclui

Mensagem por Mário Isa »

Olá Amigos!

Recentemente não estou mais utilizando o famoso

set printer to lpt1

então fiz assim

set printer to getdefaultprinter()


Mas daí / se a impressora EPSON LX-300 estiver em pausa / o Windows não imprime e exclui o relatório automaticamente /

Se estiver ligada e pronta tudo bem /

Mas no antigo DOS / se ela estiver em pausa / ela simplesmente saía da pausa e imprimia normal /

Alguem sabe resolver ?

Mário :-O
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: impressora pausada windows exclui

Mensagem por alaminojunior »

Mario, experimente direcionar a impressão para um arquivo, e depois imprimir usando a função PrintFileRaw() que enviará o serviço para o spool do Windows.

Código: Selecionar todos

Set Printer to arquivo.txt
...
PrintFileRaw(GetDefaultPrinter(),"arquivo.txt","Relatório de Vendas - AlaminoJunioR")
ou ainda

Código: Selecionar todos

set printer to inadim.txt
...
set printer to
if getimp()
   PrintFileRaw(aprn[nprn], "inadim.txt", "Relatorio de Inadimplentes Crediario - AlaminoJunioR")
   millisec(1000)
   deletefile(curdrive()+":\"+curdir()+"\inadim.txt")
endif

Código: Selecionar todos

FUNC GetImp
LOCAL aINCCLI := savescreen( 08,09,21,63 )
Public nPrn:= 1
Public aPrn:= GetPrinters()
If Empty(aPrn)
   wvt_messagebox("Nao encontrei nenhuma impressora instalada !!!","ATENCAO !!!",48)
   Return
else
   Hb_Shadow(08,09,19,61)
   @ 08,09,19,61 box B_DOUBLE + space(1) colo "n+/w*"
	@ 09,26 say "Selecione a impressora" colo "n/w*"
   @ 18,30 say "ESC - VOLTA" colo "n/w*"
   SETCOLOR( "n/w*,gr+/b,,,b/w*" )
   nPrn:= ACHOICE(11,11,15,59,aPrn,.T.,,nPrn)
EndIf
if lastkey() = K_ESC
   Restscreen(08,09,21,63,aINCCLI)
   RETURN .f.
endif
Restscreen(08,09,21,63,aINCCLI)
RETURN .t.
Eu estou usando o

Código: Selecionar todos

set printer to lpt1
em apenas um caso que é o de imprimir carnês, onde eu preciso dar uma pausa para virar o formulário e depois prosseguir com a impressão. De resto é tudo PrintFileRaw() na veia. E quando o cliente é mais enjoado, Win32Prn.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Responder