Mira se ayuda: Use Google Traductor.
// Impressao Continua:
// http://fivewin.com.br/index.php?/topic/27095-impress%C3%A3o-cont%C3%ADnua-com-printer/
// http://fivewin.com.br/index.php?/topic/24359-oprn-somente-a4/
// http://fivewin.com.br/index.php?/topic/20764-tamanho-da-pagina/
// http://fivewin.com.br/index.php?/topic/24283-como-fazer-o-qr-code-na-nfce/
// http://forums.fivetechsupport.com/viewtopic.php?t=6132
// 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()
Eliminado a TDOSPRN.PRG usando a PRINTER.PRG
http://fivewin.com.br/index.php?/topic/27095-impress%C3%A3o-cont%C3%ADnua-com-printer/
FOR NX := 1 TO nQtdVia // Imprimir várias vias
PRINTER oPrn TO "NOMBRE_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*Altura 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()
Regards, saludos.