Estou com um problema com a impressão de um relatório usando a win32prn().
Pelo programa formo um arquivo .TXT e em seguida mando para a imprimir via win32prn(), o problema é que
muitas vezes este arquivo passa de 60,70 ate umas 200 linhas e a função só imprime a primeira pagina. O arquivo txt
esta correto mas só uma parte vai para impressora.
Segue o código:
Código: Selecionar todos
cFileName := vArCom1
cLinha := Nil
aLinesPrint := {}
cBuffer := FOpen( cFileName, 2 )
WHILE Hb_FReadLine( cBuffer, @cLinha, Nil, 255 ) = 0
AADD( aLinesPrint, cLinha )
END
nPrn := ACHOICE( 03, 02, maxRow()-10, maxCol()-30, aPrn, .T., , nPrn )
IF ! EMPTY( nPrn )
prnprtc( aPrn[nPrn] )
ELSE
RETURN
ENDIF
***************************************************
FUNCTION prnprtc(cPrinter)
***************************************************
LOCAL oPrinter := WIN32PRN():New(cPrinter), aFonts, nPos
oPrinter:Landscape := .F.
oPrinter:FormType := DMPAPER_A5_TRANSVERSE
oPrinter:Copies := nUmDEvEz
IF !oPrinter:Create()
avs('ERRO CAMINHO DA IMPRESSORA')
ELSE
IF !oPrinter:startDoc('')
avs('ERRO INICIANDO DOCUMENTO.')
ELSE
oPrinter:UnderLine( .F. )
oPrinter:SetFont( mAinFonte,mAinTaman,{1,20}, 0, .F., .F. )
For i = 1 To Len ( aLinesPrint )
oPrinter:textOut( aLinesPrint[ i ] ) // imprime a linha
oPrinter:newLine() // passa para proxima linha
Next
oPrinter:EndDoc()
oPrinter:Destroy()
END
END
RETURN(NIL)
VALOR EM ABERTO: 4,217.99 em 61 CONTA(S)
------------------------------------------------------------------------------------------------------------------------
14/12/2007 0000015443 12.00 -
16/01/2008 0000016667 9.50 -
23/01/2008 0000017141 30.00 -
23/01/2008 0000017142 13.00 -
23/01/2008 0000017143 7.00 -
25/01/2008 0000017336 7.00 -
06/02/2008 0000017847 19.80 -
28/09/2015 0000019535 10.00 -
28/09/2015 0000019536 79.98 -
28/09/2015 0000019537 90.00 -
28/09/2015 0000019538 800.00 -
28/09/2015 0000019539 300.00 -
28/09/2015 0000019540 439.89 -
28/09/2015 0000019541 13.33 -
28/09/2015 0000019542 650.00 -
28/09/2015 0000019543 666.50 -
28/09/2015 0000019544 250.00 -
28/09/2015 0000019545 220.00 -
28/09/2015 0000019546 10.00 -
28/09/2015 0000019547 10.00 -
28/09/2015 0000019548 30.00 -
28/09/2015 0000019549 10.00 -
28/09/2015 0000019550 10.00 -
28/09/2015 0000019551 10.00 -
28/09/2015 0000019552 10.00 -
28/09/2015 0000019553 10.00 -
28/09/2015 0000019554 10.00 -
28/09/2015 0000019555 10.00 -
28/09/2015 0000019556 10.00 -
28/09/2015 0000019557 10.00 -
28/09/2015 0000019558 10.00 -
28/09/2015 0000019559 10.00 -
28/09/2015 0000019560 10.00 -
28/09/2015 0000019561 20.00 -
28/09/2015 0000019562 10.00 -
28/09/2015 0000019563 10.00 -
28/09/2015 0000019564 30.00 -
28/09/2015 0000019565 10.00 -
28/09/2015 0000019566 10.00 -
28/09/2015 0000019567 30.00 -
28/09/2015 0000019568 10.00 -
28/09/2015 0000019569 10.00 -
28/09/2015 0000019570 70.00 -
28/09/2015 0000019571 20.00 -
28/09/2015 0000019572 20.00 -
28/09/2015 0000019573 10.00 -
28/09/2015 0000019574 10.00 -
28/09/2015 0000019575 10.00 -
28/09/2015 0000019576 13.33 -
28/09/2015 0000019577 10.00 -
28/09/2015 0000019578 10.00 -
28/09/2015 0000019579 10.00 -
28/09/2015 0000019580 10.00 -
28/09/2015 0000019581 10.00 -
28/09/2015 0000019582 10.00 -
28/09/2015 0000019584 10.00 -
28/09/2015 0000019585 10.00 -
28/09/2015 0000019586 10.00 -
28/09/2015 0000019587 10.00 -
28/09/2015 0000019588 10.00 -
28/09/2015 0000019589 26.66 -
------------------------------------------------------------------------------------------------------------------------
VALOR EM ABERTO: 4,217.99 em 61 CONTA(S)
------------------------------------------------------------------------------------------------------------------------
O PDF fica assim:
[

