Página 1 de 1

Migrar impressão lx300 80 colunas para impressora termica!

Enviado: 06 Abr 2018 09:45
por adilson
Bom dia Amigos do forum !!
Gostaria de saber ser existe algum comando ( Chr por exemplo ) Para migrar uma impressão tabulada para a lx300 em uma impressora térmica ? garimpei na net e não consegui encontrar nada . obrigado !

Migrar impressão lx300 80 colunas para impressora termica!

Enviado: 06 Abr 2018 10:37
por asimoes
Olá,

Eu uso Win_Prn() para impressoras térmicas bematech

Migrar impressão lx300 80 colunas para impressora termica!

Enviado: 06 Abr 2018 11:25
por adilson
Olá Asimoes , no meu caso já tenho o arquivo para impressão pronto ex: vendas.txt , esse arquivo esta tabulado
para a lx300 ,com o win_prn() , consigo reduzir as colunas para a impressão na térmica ?
obrigado !!

Migrar impressão lx300 80 colunas para impressora termica!

Enviado: 06 Abr 2018 11:27
por Jairo Maia
Olá Pessoal,

Impressoras térmicas são compatíveis com o modo RAW (ESC/POS), assim, qualquer impressão que era feita na LX 300 pode ser migrada para impressora térmica usando Win_PrintFileRAW().

O que não entendi é o que seria "impressão tabulada".

Migrar impressão lx300 80 colunas para impressora termica!

Enviado: 06 Abr 2018 11:27
por asimoes
adilson escreveu:consigo reduzir as colunas para a impressão na térmica ?
Consegue sim.

Migrar impressão lx300 80 colunas para impressora termica!

Enviado: 06 Abr 2018 11:31
por asimoes
Um exemplo:

Código: Selecionar todos

METHOD ClImpBema:PrintWin( cPrinter, cArq ) 
LOCAL oPrn:=Nil, aPrn:=Win_PrinterList( .T., .F. ), __nColFixed, cLinha, oElemento, lImp:=.F.

   cPrinter := Hb_DefaultValue( cPrinter, Win_PrinterGetDefault() )
   cArq     := Hb_DefaultValue( cArq, "" )
   
   IF Empty( cArq )
      MsgStop( "Arquivo de impressão não informado", "Erro" )
      RETURN .F.
   ENDIF

   IF Empty( aPrn )
      MsgStop( "Não há impressoras instaladas", "Erro" )
      RETURN .F.
   ENDIF
   
   FOR EACH oElemento IN aPrn
      IF Upper( oElemento[1] ) = Upper( cPrinter )
         //oElemento[1] //Nome da impressora
         //oElemento[2] //Porta onde a impressora está ligada
         lImp:=.T.
      ENDIF
   NEXT
  
   IF ! lImp
      MsgStop( "Impressora " + cPrinter + " não está instalada." + Hb_Eol() + "Entre em contato com o helpdesk", "Erro" )
      RETURN Nil
   ENDIF
  
   oPrn := Win_Prn():New( cPrinter )

   oPrn:FormType   := WIN_DMPAPER_USER //WIN_DMPAPER_A4
   
   oPrn:LandScape  := .F.
   	
   nTL := MlCount( MemoRead( cArq ) ) / 5
   
   oPrn:PaperLength := 11.0 * 25.4 * nTL
   	
   oPrn:PaperWidth := 3 * 26.4 * 10
   
   oPrn:Copies := 1
 
   IF ! oPrn:Create()
      MsgStop( "Não foi criado documento.", "Erro de Impressão" )
      oPrn:Destroy()
      RETURN Nil
   ENDIF
  
   IF ! oPrn:StartDoc( "DocPrint" )
      MsgStop( "Erro na Impressora.", "Erro de Impressão" )
      oPrn:Destroy()
      RETURN Nil
   ENDIF
   
   oPrn:SetColor( HB_WIN_RGB_BLACK )
   
   oPrn:SetFont( "Lucida Console", 8, 0 )
   
   //oPrn:SetFont("Lucida Console", 5, { 3, -90 }, 700 ) //90 CPP

   __nColFixed := 0
  
   FT_FUSE( cArq )
   
   DO WHILE ! FT_FEOF()
      cLinha := FT_FREADLN()
      cLinha := IF( Empty( cLinha ), " ", cLinha )
      oPrn:SetPos( __nColFixed )
      oPrn:Textout( cLinha, .T. )
      FT_FSKIP()
   ENDDO
  
   FT_FUSE()
  
   oPrn:EndDoc()
   
   oPrn:Destroy()
   
   oPrn:=Nil

RETURN .T.