IMPRESSÃO DIRETA PORTA USB em xHARBOUR

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

Moderador: Moderadores

Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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,
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Heero
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 13 Jul 2015 22:10
Localização: Guarulhos/SP

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem por Heero »

Bom Dia,

Uma boa solução é o NODOSIMP.exe. Funciona bem.
Ricardo Rodrigues
Harbour 3.2 + BCC + Minigui
Cursando Análise e Desenvolvimento de Sistemas
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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" )
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem por deividdjs »

onde eu encontro essas LIB´s ??

-lhbwin -lxhb
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem por deividdjs »

Sim... xharbour
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Paredes01
Usuário Nível 2
Usuário Nível 2
Mensagens: 52
Registrado em: 20 Mai 2012 11:22
Localização: Mérida, Yucatán, México

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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!
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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 ??
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem por deividdjs »

Estou gerando o arquivo .prn e mandando imprimir com a função do exemplo acima ...
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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.
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
maxtai
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 04 Out 2014 16:31
Localização: Criciúma/SC
Contato:

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagem 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
Responder