Jump to content
Fivewin Brasil

Impressão contínua com Printer


oribeiro

Recommended Posts

Pessoal,

Atualmente eu utilizao o TDOSPrn para imprimir numa impressora Epson TM T20, mas eu estou querendo usar o Printer para usar mais plenamente o driver da impressora.

Minha dúvida é se eu consigo imprimir em rolo de papel onde o pedidinho não tem um tamanho específico usando a classe Printer. Alguém tem experiência nesse assunto?

Obrigado.

 

Link to comment
Share on other sites

Eu faço assim mas só testei na Bematech MP-??? TH. Vê se funciona na sua impressora.

   FOR NX := 1 TO nQtdVia // Imprimir várias vias
      PRINTER oPrn TO "NOME_DA_IMPRESSORA" NAME "Trabalho de impressão"
      oPrn:SetPage( 256 )
      DEFINE FONT oFont NAME "Courier New" SIZE 0,-12 BOLD OF oPrn
      DEFINE FONT oFnt2 NAME "Courier New" SIZE 0, -8 BOLD OF oPrn
      nWidt := oFnt2:nWidth + (oFnt2:nWidth/4)
      nFtHi := oFnt2:nHeight
      nPgHi := (60*nFtHi) * 1.3 // Altura da página: (60*Altira da fonte) * 1.3 (Testado na BEMATECH MP 2500)
      oPrn:SetSize( 1000, nPgHi)

      mL := 1 // Linha inicial
	  nTckCol := 3 // Tabulação - 3 espaços
      oPrn:StartPage()
      oPrn:SayBitmap(mL*nFtHi, nWidt*(nTckCol+2), ".\bitmaps\logomarca.bmp", 40 * nWidt, (mL+6) * nFtHi)
      mL += 8
      FOR Y = 1 TO LEN(mLista) // mLista é um array contendo o que deve ser impresso
        oPrn:Say(mL*nFtHi, 000, SPACE(nTckCol)+mLista[Y], oFnt2 )
        mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF
      NEXT
      IF lAssina // Se deve incluir uma assinatura
         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF
         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+"----------------------------------------", oFnt2 )
         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF
         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+" ", oFnt2 )
         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF
         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+" ", oFnt2 )
         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF
         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+"___/___/___    _________________________", oFnt2 )
         mL ++ ; IF (mL*nFtHi) >= (60 * nFtHi) ; oPrn:EndPage() ; oPrn:StartPage() ; mL := 1 ; ENDIF
         oPrn:Say(mL*nFtHi,000, SPACE(nTckCol)+"Data           Cliente                  ", oFnt2 )
      ENDIF
      oPrn:Say(mL*nFtHi,000, "_", oFnt2 )
      oPrn:EndPage()
      oPrn:Preview()
      RELEASE FONT oFont, oFnt2
   NEXT
   // Para corrigir o BUG do papel extreito
   SysRefresh()
   PRINTER oPrn2 NAME "BugFix"
   oPrn2:SetPage( 9 )
   oPrn2:End()

 

Link to comment
Share on other sites

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...