Clipper On Line • Ver Tópico - IMPRESSÃO DIRETA PORTA USB em xHARBOUR

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

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

Moderador: Moderadores

 

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor deividdjs » 07 Mar 2018 07:42

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 + Visual Lib + GTWVG
Avatar de usuário

deividdjs
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 245
Data de registro: 19 Set 2006 09:39
Cidade/Estado: Foz do Iguaçu / Pr
Curtiu: 81 vezes
Mens.Curtidas: 8 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor Heero » 07 Mar 2018 07:57

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
Heero
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 51
Data de registro: 13 Jul 2015 22:10
Cidade/Estado: Guarulhos/SP
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor Jairo Maia » 07 Mar 2018 09:09

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:
/*
  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)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor Kapiaba » 07 Mar 2018 12:11

   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" )
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor deividdjs » 10 Mar 2018 07:06

onde eu encontro essas LIB´s ??

-lhbwin -lxhb
Windows 11 + Harbour 3.2 + Visual Lib + GTWVG
Avatar de usuário

deividdjs
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 245
Data de registro: 19 Set 2006 09:39
Cidade/Estado: Foz do Iguaçu / Pr
Curtiu: 81 vezes
Mens.Curtidas: 8 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor Jairo Maia » 10 Mar 2018 10:07

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 de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor deividdjs » 10 Mar 2018 10:19

Sim... xharbour
Windows 11 + Harbour 3.2 + Visual Lib + GTWVG
Avatar de usuário

deividdjs
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 245
Data de registro: 19 Set 2006 09:39
Cidade/Estado: Foz do Iguaçu / Pr
Curtiu: 81 vezes
Mens.Curtidas: 8 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor Paredes01 » 10 Mar 2018 11:10

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!
Paredes01
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 38
Data de registro: 20 Mai 2012 11:22
Cidade/Estado: Mérida, Yucatán, México
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor deividdjs » 15 Fev 2022 12:59

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 + Visual Lib + GTWVG
Avatar de usuário

deividdjs
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 245
Data de registro: 19 Set 2006 09:39
Cidade/Estado: Foz do Iguaçu / Pr
Curtiu: 81 vezes
Mens.Curtidas: 8 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor Itamar M. Lins Jr. » 15 Fev 2022 14:04

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor deividdjs » 15 Fev 2022 18:25

Estou gerando o arquivo .prn e mandando imprimir com a função do exemplo acima ...
Windows 11 + Harbour 3.2 + Visual Lib + GTWVG
Avatar de usuário

deividdjs
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 245
Data de registro: 19 Set 2006 09:39
Cidade/Estado: Foz do Iguaçu / Pr
Curtiu: 81 vezes
Mens.Curtidas: 8 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor Itamar M. Lins Jr. » 15 Fev 2022 20:18

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor deividdjs » 15 Fev 2022 21:58

   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

   
   
    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..

   *-------------------------------*
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 + Visual Lib + GTWVG
Avatar de usuário

deividdjs
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 245
Data de registro: 19 Set 2006 09:39
Cidade/Estado: Foz do Iguaçu / Pr
Curtiu: 81 vezes
Mens.Curtidas: 8 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor Itamar M. Lins Jr. » 15 Fev 2022 22:27

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

IMPRESSÃO DIRETA PORTA USB em xHARBOUR

Mensagempor maxtai » 16 Fev 2022 15:03

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
maxtai
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 9
Data de registro: 04 Out 2014 16:31
Cidade/Estado: Criciúma/SC
Curtiu: 1 vez
Mens.Curtidas: 1 vez




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro