Sei que o assunto já foi respondido várias vezes, mas na minha pesquisa encontrei muitos posts muitos antigos.
E quero modernizar minha impressão em USB.
Meu prg já foi convertido para Harbour e já imprime em USB.
Mas faz isso imprimindo num arquivo
ArqImp:='C:\USB.TXT'
Imprime(ArqImp,13,gprintername)
set printer to
set printer to 'C:\USB.TXT'
*********************************************
Function Imprime( cArq, tamrel ,cPrinter )
*********************************************
local cTexto, nLinhas, n, cLinha,arquivoi,tam_pagina, estrut:={{"LINHA","C",200,0}} // oPrinter := win32prn():New(cPrinter)
local oPrinter := win32prn():New(cPrinter)
oPrinter:Landscape := .F.
oPrinter:FormType := 9
oprinter:SetPrintQuality(-1) // qualidade da impressão
oPrinter:Copies := 1
IF !oPrinter:Create()
Mens("ATENÇÃO !!! Não foi possivel Iniciar a Impressão, Favor Verificar se a Impressora esta Ligada.","Aviso do Sistema",20)
return NIL
ELSE
IF !oPrinter:StartDoc("Impressao Pelo Sistema SCC")
Mens("ATENÇÃO !!! Não foi possivel Iniciar a Impressão, Favor Verificar o Spoll da Impressora","Aviso do Sistema",20)
Return NIL
endif
IF TAMREL=80
oPrinter:setfont('Courier New',9,9,,,,255) // Normal
ELSE
oPrinter:SetFont("Courier New",14,{3,-50}) // Comprimida
ENDIF
oPrinter:Bold(0) // Normal
cTexto := memoread(cArq)
nLinhas := mlcount(cTexto)
tam_pagina:=0
For n := 1 to nLinhas
clinha:=memoline(CTexto,200,n)
oPrinter:newline() // Inicia nova linha
oPrinter:TextOut(HB_OemToAnsi(clinha))
oPrinter:SetFont("Courier New",11,{3,-50}) // Comprimida
oPrinter:Bold(0) // Normal
tam_pagina=tam_pagina+1
if n<> nLinhas
*if tam_pagina=63
if (oPrinter:MaxRow() - 4) <= oPrinter:Prow() // Usa "oPrinter:NewPage()" para iniciar nova pagina
oPrinter:NewPage()
endif
tam_pagina:=0
endif
Next
oPrinter:EndDoc()
oPrinter:Destroy()
ENDIF
RETURN NIL
E isto no Windows 7 Ã s vezes trava, demora a liberar para a impressora, no caso um MP-100 s da Bematech.
Pergunto: no modo console tem como imprimir diretamente sem utilizar o arquivo txt?
Tem modo mais rápido? Pois me parece que o Windows fica controlando este arquivo escritos no raiz do HD e fica mais lento. Nunca é imediato.