Página 1 de 1
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 07 Mar 2018 07:42
por deividdjs
bom dia, Galera ...
estou meio desatualizado ... e gostaria de saber se já existe algo para imprimir em impressora usb diretamente, como fazíamos nas impressoras epson matriciais porta LPT1 ....
Abraço,
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 07 Mar 2018 07:57
por Heero
Bom Dia,
Uma boa solução é o NODOSIMP.exe. Funciona bem.
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 07 Mar 2018 09:09
por Jairo Maia
deividdjs escreveu:estou meio desatualizado ... e gostaria de saber se já existe algo para imprimir em impressora usb diretamente
Realmente bem desatualizado.... Isso existe desde que o xHarbour existe.
Lembrando que não imprime em impressora virtual, somente em impressora física:
Código: Selecionar todos
/*
compilar usando: Hbmk2 exemplo.prg -lhbwin -lxhb
*/
Function Main()
Local cPrinter
Local cTexto := "Teste de impressão" + Hb_EOL()
MemoWrit( "ArqPrin.Txt", cTexto )
// cPrinter := GetDefaultPrinter() // pega impressora padrão, ou
cPrinter := MyPrinters() // seleciona a impressora...
If !Empty( cPrinter )
PrintFileRaw( cPrinter, "ArqPrin.Txt", "Impressao Teste" ) // imprime
EndIf
Return Nil
Func MyPrinters()
Local i, nPrn, oPrn, nMaxLen := 0, aPNomes := {}
Local aPrn := GetPrinters()
If Empty( aPrn )
Alert( "Nenhuma impressora Instalada" )
Return Nil
Endif
For i=1 To Len( aPrn )
AaDd( aPNomes , aPrn[i,1] )
nMaxLen := If( Len( aPrn[i,1] ) > nMaxLen, Len( aPrn[i,1] ), nMaxLen )
Next
Clear Screen
nPrn := AChoice( 5, 10, Len( aPrn )+5, nMaxLen+1, aPNomes, .T., Nil , aPNomes )
If nPrn = 0
Return Nil
Endi
Clear Screen
cPrinter := AllTrim( aPNomes[nPrn] )
Return cPrinter
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 07 Mar 2018 12:11
por Kapiaba
Código: Selecionar todos
cPorta := PrnGetPort()
cPrinter := PrinterPortToName( cPorta )
if empty( cPrinter )
cPrinter := PrinterPortToName( "USB002" )
if empty(cPrinter)
cPrinter := PrinterPortToName( "USB001" )
endif
endif
// Grave o arquivo...
PrintFileRaw( cPrinter, TrueName("MINUTA.TXT"), "Impressão de Vendas" )
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 10 Mar 2018 07:06
por deividdjs
onde eu encontro essas LIB´s ??
-lhbwin -lxhb
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 10 Mar 2018 10:07
por Jairo Maia
Você está compilando com xHarbour? Acho que essas libs são somente para compular com Harbour.
NOTA: Também em xHarbour não tem a função Hb_EOL() (quebra de linha conforme a plataforma usada). Esqueci de tirar.
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 10 Mar 2018 10:19
por deividdjs
Sim... xharbour
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 10 Mar 2018 11:10
por Paredes01
Buen día.
En xharbour, ejemplo :
*** Cuando inicio el modulo
bIMP_NOTA := {|| IMP_NOTA() }
*** lo ejecuto cuando y donde lo necesito
EVAL(bIMP_NOTA)
*----------------------------------------------------------
* Sistema operativo windows 10 profesional
* Si es matricial por Lpt1 modo texto (Epson Lx-300+)
* Si es termica modo grafico en (usb directo) instalar los drivers
* em mi caso tengo Epson tmu-220u
FUNCTION IMP_NOTA()
cDevOut := GetDefaultPrinter()
cIMPX = "C:\REPORTES\NOTA.TXT"
SET PRINTER TO &cIMPX
SET DEVICE TO PRINT
@ PROW()+1,(INT(40-LEN(cCOR_EMP))/2) SAY cCOR_EMP
@ PROW()+1,(INT(40-LEN(cDIR_EMP))/2) SAY cDIR_EMP
@ PROW()+1,(INT(40-LEN("COLONOIA : "+cCOL_EMP))/2) SAY "COLONIA : "+cCOL_EMP
@ PROW()+1,(INT(40-LEN("ESTADO : " +cSTA_EMP))/2) SAY "ESTADO : " +cSTA_EMP
@ PROW()+1,(INT(40-LEN("R.F.C. " +cRFC_EMP))/2) SAY "R.F.C. " +cRFC_EMP
@ PROW()+1,(INT(40-LEN("TEL. " +cTEL_EMP))/2) SAY "TEL. " +cTEL_EMP
@ PROW()+1, 0 SAY "FOLIO :"
@ PROW() , 8 SAY cFOLIO
@ PROW() ,22 SAY DTOC(DATE())+" - "+SUBSTR(TIME(),1,5)
@ PROW()+1, 0 SAY REPLICATE("-",40)
SET DEVICE TO SCREEN
SET PRINTER TO
PRINTFILERAW(cDevOut,cIMPX)
RETURN NIL
Saludos!
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 15 Fev 2022 12:59
por deividdjs
até hoje não consegui imprimir ... eu preciso imprimir em uma impressora LX-300 e LX-350 em modo DRAFT usandos os caracteres de impressão da EPSON ... condensado .. expandido e etc ... alguem pode me dar uma luz ??
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 15 Fev 2022 14:04
por Itamar M. Lins Jr.
Olá!
até hoje não consegui imprimir ...
Mostre a forma que está fazendo, para que todos possam te ajudar.
Saudações,
Itamar M. Lins Jr.
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 15 Fev 2022 18:25
por deividdjs
Estou gerando o arquivo .prn e mandando imprimir com a função do exemplo acima ...
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 15 Fev 2022 20:18
por Itamar M. Lins Jr.
Olá!
A impressora está detectada no windows ?
LX300 e 350 na LPT1 no windows tem problemas, imprime usando notepad ?
Como faz p/ imprimir então ? sem ser p/ seu sistema ?
Tente usar na LX350 USB, ainda tenho cliente que usa LX3XX mas é USB.
Sem ver seu código fica só especulação mesmo...
Pq o código "printfileraw()" indicado por vc funciona. Ou não acha o arquivo .prn/.txt ou não acha a impressora ou problema de compatibilidade "LX300 x Windows."
E não tem o que fazer, pq isso é muito simples de resolver. Mas com essas informações a conta gotas, vamos nos arrastando no processo para resolver seu problema.
Saudações,
Itamar M. Lins Jr.
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 15 Fev 2022 21:58
por deividdjs
Código: Selecionar todos
if Imp_PORTA == 2 && USB/REDE
RSTENV(REIMPRI)
c_codped := cc_codped
IMP_PEDVEN() // imprime em arquivo .PRN
IMPRIMI_RAW(REL_TELA)
endif
/// aqui entra na rotira para imprimir o pedido em usb / rede modo raw
Código: Selecionar todos
tmp := "tm" + substr(time(),4,2) + substr(time(),7,2) + "pv" && impressao de pedido de venda
do while .t.
if imp_pedven = 1 .and. imp_PORTA = 1
if .not. CHKPRN()
set filter to
tmp->(dbclosearea())
tmp += ".dbf"
ferase (tmp)
cdx += ".cdx"
ferase (cdx)
return(2)
endif
endif
SETCURSOR(0)
set color to "N/W*"
IMP := WIN(12,25,17,51, "Aguarde!", WT_AZUL2BRANCO, WD_AZUL2BRANCO)
@14,29 say "I M P R I M I N D O" color "R/W*"
@15,26 say "----------------------------------"
@16,31 say "Copia de Nº"
@16,43 say copia picture "9" color "R/W*"
inkey(1)
if imp_pedven = 1 .and. imp_PORTA = 1 && LPT1
set printer to LPT1
set device to printer
set printer on
endif
public REL_TELA := TMP
if imp_pedven = 2 .or. imp_porta = 2 // USB
set printer to (tmp) + ".prn"
set device to printer
set printer on
set console off
endif
set color to
vcab = .t.
n_item := 1
vez := 1
n_valserv := 0
n_valprod := 0
a função que chama o printfileraw é essa abaixo..
Código: Selecionar todos
*-------------------------------*
function IMPRIMI_RAW(p_arquivo) // IMPRIMI IMPRESSORA MATRICIAL MODO DRAFT
*-------------------------------*
local TELA_ANT
save screen to TELA_ANT
ARQ_TXT := (p_arquivo) + ".PRN"
cPrint:= GetDefaultPrinter() // pega impressora padrÆo
PrintFileRaw(cPrint,ARQ_TXT)
fclose(ARQ_TXT)
erase (p_arquivo) + ".PRN"
restore screen from TELA_ANT
setcursor(3)
return(0))
é bem modo simplezão mais sempre funcionou em impressoras LPT1 e a com o
nodosimp funciona perfeitamente ... porém não consigo usalos da forma que preciso é q utilizando os codigos de impressao para imprimir em modo DRAFT .. condensado .. expandido ... como antes no cliper em LPT1 ...
tá bixo feio ... eu até consegui imprimir algumas vezes com o PRINTFILERAW ... porem ele sai tudo DRAFT NORMAL .. .não obedece os codigos de impressao ...
Att,,
Abs.
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 15 Fev 2022 22:27
por Itamar M. Lins Jr.
Olá!
Feche o fclose antes de imprimir senão não vai mesmo ! Apague o arquivo depois de impresso.
set device to ... set printer to ... (Liberar o arquivo TEXTO), para ser usado por outros programas, no caso mandar para impressora, antes de imprimir
porem ele sai tudo DRAFT NORMAL
Cadê o arquivo .prn ? para ver se chr(x) está saindo, precisa colocar a pagina de código correta nesse momento deverá ser cp437.
Saudações,
Itamar M. Lins Jr.
IMPRESSÃO DIRETA PORTA USB em xHARBOUR
Enviado: 16 Fev 2022 15:03
por maxtai
Quando eu trabalhava em modo console. Eu instalava no windows a impressora usb, depois compartilhava ela na rede, e colocava um nome bem pequeno. depois usava o comando NET USE para direcionar ela para a LPT1:. Depois disso meu sistema antigo que mandava para a lpt1 funcionava perfeito.
Um grande abraço,
MaxTai
XGestor Sistemas
www.xgestorvarejo.com.br