No encuentro documentación acerca de como configurar los margenes en tprinter, alguien me podría ayudar a hacerlo?, necesito que el área imprimible comience más abajo.
Desde ya muchas gracias.
TPRINTER como configurar los margenes?
-
- Posts: 33
- Joined: Tue Jun 08, 2010 3:34 pm
- Location: Rosario, Santa Fe. Argentina
TPRINTER como configurar los margenes?
Libreria: FWH/FWHX 9.11 25/November/2009
Harbour: Harbour 2.0.0 Beta2
Compilador: Borland C++ 5.5.1 versión 32 bits
Editor de Recursos: UEstudio 10.0
Gestor de B.D: A.D.A ( Advantage Data Architect )
S.O: Windows XP
Harbour: Harbour 2.0.0 Beta2
Compilador: Borland C++ 5.5.1 versión 32 bits
Editor de Recursos: UEstudio 10.0
Gestor de B.D: A.D.A ( Advantage Data Architect )
S.O: Windows XP
- karinha
- Posts: 7944
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: TPRINTER como configurar los margenes?
Mira si ayuda:
Code: Select all | Expand
#Define PAD_LEFT 0#Define PAD_RIGHT 1#Define PAD_CENTER 2STATIC FUNCTION IMPRIMIR_CAIXA( DbPedidos, DbPedAnual, cDataInicial, ; cDataFinal, aGet, DeOndeParte ) LOCAL cAlias, oImagem, gcFile LOCAL ResColuna, ResLinha LOCAL oPrn, oFont, oFontLogo, oFontDivi, oFontList, ; oFontCurs, oPen1, oPen2, oPen3, oFontSubl LOCAL nLinha, nColuna // Linha e coluna da Descicao LOCAL nDinheiro, nCheque, nChequePre, nTickets, nCartaoCred,; nCartaoDebi, nContraVale, nPagina, nTotalGeral, xDataLista MEMVAR XCAIXAINI, XCAIXAFIN, XOPERAINI, XOPERAFIN PUBLIC XNOMEEMP, XCIDDIR XDATALISTA := ALLTRIM(XCIDDIR)+ ", " + ; LTRIM( STR( DAY( DATE() ) ) ) + ; " de " + ; OemToAnsi(CMONTH( DATE() )) + ; " de " + ; STR( YEAR( DATE() ) ) + ; "." // VariAveis Para Achar os Valores Que o Cliente Pagou nDinheiro := 0.00 nCheque := 0.00 nChequePre := 0.00 nTickets := 0.00 nCartaoCred := 0.00 nCartaoDebi := 0.00 nContraVale := 0.00 nTotalGeral := 0.00 //oImagem:Progress( .f. ) //-> Logo do Relatorio //LFN2SFN( gcFile := "SEMFOTO.JPG" ) //oImagem:LoadBMP( gcFile ) cAlias := ALIAS() // DbPedidos //-> Mostra o Relatorio... Preview do Fluxo do Caixa PRINT oPrn NAME "Fluxo do Caixa Discriminado" PREVIEW MODAL IF EMPTY( oPrn:hDC ) RETURN NIL // Printer was not installed or ready ENDIF DEFINE FONT oFont NAME "Courier New" SIZE 0, -8 OF oPrn DEFINE FONT oFontDivi NAME "Courier New" SIZE 0, -12 BOLD OF oPrn DEFINE FONT oFontCurs NAME "Courier New" SIZE 0, -14 BOLD OF oPrn DEFINE FONT oFontSubl NAME "Courier New" SIZE 0, -16 BOLD UnderLine OF oPrn //-> Problemas com o Windows XP - Formato da FONTE Nao Reconhecido IF IsWinNT() .OR. IsWin2000() // Para Windows XP/NT e 2000 / 2003 DEFINE FONT oFontLogo NAME "Courier New" SIZE 0, -16 BOLD OF oPrn DEFINE FONT oFontList NAME "Courier New" SIZE 0, -20 BOLD OF oPrn ELSE //-> 95/98/ME DEFINE FONT oFontLogo NAME "Courier New" SIZE 0, -20 BOLD OF oPrn DEFINE FONT oFontList NAME "Courier New" SIZE 0, -22 BOLD OF oPrn ENDIF //-> Caneta do Preview DEFINE PEN oPen1 WIDTH 4 COLOR CLR_BROWN OF oPrn DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BROWN OF oPrn DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK OF oPrn oPrn:SetPage(9) //-> A4 //9 oPrn:SetPortrait() //-> Vertical(Retrato) //oPrn:SetLandscape() //-> Horizontal //- Como Imprimir em Centimetros sem errar e em qualquer Impressora ResLinha := oPrn:nVertRes() / 40 ResLinha := oPrn:nLogPixely() / 2.54 ResColuna := oPrn:nLogPixelx() / 2.54 nPagina := 1 PAGE //oPrn:SayImage( 0, 0, oImagem ) //oPrn:SayBitmap( 0, 0, "c:\fwh\bitmaps\fivewin.bmp" ) nLinha := 0.50 nColuna := 10.00 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; XNOMEEMP, oFontDivi,, CLR_BLACK,, PAD_CENTER ) nLinha += 0.50 nColuna := 1.00 //-> Data de Hoje oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "Data: " + DTOC( DATE() ) ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nColuna := 10.00 //-> Cabe‡alho oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "FLUXO DO CAIXA DISCRIMINADO ", oFontDivi,, ; CLR_BLACK,, PAD_CENTER ) nColuna := 17.50 //-> Pagina oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "P gina: " + STRZERO( nPagina ) ), oFont,, ; CLR_BLACK,, PAD_CENTER ) nLinha += 0.50 nColuna := 10.00 IF XCAIXAINI > 0 .AND. XCAIXAFIN > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "Caixa Inicial: " + STR( XCAIXAINI ) + ; " - " + ; "Caixa Final..: " + STR( XCAIXAFIN ) ), ; oFont,, CLR_BLACK,, PAD_CENTER ) ELSEIF VAL(XOPERAINI) > 0 .AND. VAL(XOPERAFIN) > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "Operador Inicial: " + ( XOPERAINI ) + ; " - " + ; "Operador Final..: " + ( XOPERAFIN ) ), ; oFont,, CLR_BLACK,, PAD_CENTER ) ENDIF nLinha += 0.50 nColuna := 1.00 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 //-> Pula a Linha //-> Cabecalho oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "CàDIGO PROD " + SPACE(12) + ; "DESCRI€ÇO " + SPACE(10) + ; "VL. UNITµRIO " + SPACE(08) + ; "QTDE VENDIDA " + SPACE(10) + ; "TOTAL ÖTEM " ), oFont,, CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 //-> Pula a Linha oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 //-> Vou imprimir os produtos WHILE ( .NOT. EOF() ) SYSREFRESH() IF EOF() EXIT ENDIF IF nLinha >= 27 // Nova Pagina = 54 Linhas ENDPAGE // Fecho a Pagina Anterior, Para Nao Quebrar o Metafile PAGE // Nova Pagina - Abro uma nova pagina nPagina := nPagina + 1 nLinha := 0.50 nColuna := 10.00 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; XNOMEEMP, oFontDivi,, CLR_BLACK,, PAD_CENTER ) nLinha += 0.50 nColuna := 1.00 //-> Data de Hoje oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "Data: " + DTOC( DATE() ) ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nColuna := 10.00 //-> Cabecalho oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "FLUXO DO CAIXA DISCRIMINADO ", oFontDivi,, ; CLR_BLACK,, PAD_CENTER ) nColuna := 17.50 //-> Pagina oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "P gina: " + STRZERO( nPagina ) ), oFont,, ; CLR_BLACK,, PAD_CENTER ) nLinha += 0.50 nColuna := 10.00 IF XCAIXAINI > 0 .AND. XCAIXAFIN > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "Caixa Inicial: " + STR( XCAIXAINI ) + ; " - " + ; "Caixa Final..: " + STR( XCAIXAFIN ) ), ; oFont,, CLR_BLACK,, PAD_CENTER ) ELSEIF VAL(XOPERAINI) > 0 .AND. VAL(XOPERAFIN) > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "Operador Inicial: " + ( XOPERAINI ) + ; " - " + ; "Operador Final..: " + ( XOPERAFIN ) ), ; oFont,, CLR_BLACK,, PAD_CENTER ) ENDIF nLinha += 0.50 nColuna := 1.00 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 //-> Pula a Linha //-> Cabecalho oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "CàDIGO PROD " + SPACE(12) + ; "DESCRI€ÇO " + SPACE(11) + ; "VL. UNITµRIO " + SPACE(08) + ; "QTDE VENDIDA " + SPACE(10) + ; "TOTAL ÖTEM " ), oFont,, CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 //-> Pula a Linha oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 ENDIF nColuna := 1.00 //-> Codigo do Produto oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; ( cAlias )->CODIGO, oFont,, CLR_BLACK,, PAD_LEFT ) nColuna := 3.50 //-> Nome do Produto oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; SUBSTR(( cAlias )->DESCRICAO,1,30), oFont,, ; CLR_BLACK,, PAD_LEFT ) nColuna := 9.00 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; TRANSF((( cAlias )->VLUNITARIO), "@E 999,999,999,999.99" ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nColuna := 12.50 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; TRANSF((( cAlias )->QTD_VENDEU), "999999999999.99" ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nColuna := 15.50 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; TRANSF((( cAlias )->TOTITEM), "@E 999,999,999,999.99" ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nColuna := 1.00 nLinha += 0.30 //-> Pula a Linha oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT ) nDinheiro := nDinheiro + ( cAlias )->DINHEIRO - ; ( cAlias )->TROCOCLIEN nCheque := nCheque + ( cAlias )->CHEQUE nChequePre := nChequePre + ( cAlias )->CHEQUEPRE nTickets := nTickets + ( cAlias )->TICKETS nCartaoCred := nCartaoCred + ( cAlias )->CARTAOCRED nCartaoDebi := nCartaoDebi + ( cAlias )->CARTAODEBI nContraVale := nContraVale + ( cAlias )->CONTRAVALE nTotalGeral := nTotalGeral + ( cAlias )->TOTPEDIDO /* VENDAPRAZO CREDCARD */ SKIP // Proximo Produto nLinha += 0.50 //-> Pula a Linha Para o Proximo Produto ENDDO IF nLinha >= 27 // Nova Pagina = 54 Linhas ENDPAGE // Fecho a Pagina Anterior, Para Nao Quebrar o Metafile PAGE // Nova Pagina - Abro uma nova pagina nPagina := nPagina + 1 nLinha := 0.50 nColuna := 10.00 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; XNOMEEMP, oFontDivi,, CLR_BLACK,, PAD_CENTER ) nLinha += 0.50 nColuna := 1.00 //-> Data de Hoje oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "Data: " + DTOC( DATE() ) ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nColuna := 10.00 //-> Cabecalho oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "FLUXO DO CAIXA DISCRIMINADO ", oFontDivi,, ; CLR_BLACK,, PAD_CENTER ) nColuna := 17.50 //-> Pagina oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "P gina: " + STRZERO( nPagina ) ), oFont,, ; CLR_BLACK,, PAD_CENTER ) nLinha += 0.50 nColuna := 10.00 IF XCAIXAINI > 0 .AND. XCAIXAFIN > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "Caixa Inicial: " + STR( XCAIXAINI ) + ; " - " + ; "Caixa Final..: " + STR( XCAIXAFIN ) ), ; oFont,, CLR_BLACK,, PAD_CENTER ) ELSEIF VAL(XOPERAINI) > 0 .AND. VAL(XOPERAFIN) > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; OemToAnsi( "Operador Inicial: " + ( XOPERAINI ) + ; " - " + ; "Operador Final..: " + ( XOPERAFIN ) ), ; oFont,, CLR_BLACK,, PAD_CENTER ) ENDIF nLinha += 0.50 nColuna := 1.00 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 //-> Pula a Linha ENDIF nColuna := 1.00 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "TOTAL GERAL: ", oFontDivi,, ; CLR_BLACK,, PAD_LEFT ) nColuna := 14.00 //-> Total Geral oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; TRANSF( nTotalGeral, "@E 999,999,999,999.99" ), oFontDivi,, ; CLR_BLACK,, PAD_LEFT ) nLinha += 0.50 nColuna := 1.00 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; REPLICATE("-",110), oFont,, CLR_BLACK,, PAD_LEFT ) nLinha += 0.50 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "RESUMO GERAL: ", oFont,, ; CLR_BLACK,, PAD_LEFT ) nLinha += 0.50 nColuna := 1.00 IF nDinheiro > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "EM DINHEIRO..: " + ; TRANSF( nDinheiro, "@E 999,999.99" ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 ENDIF IF nCheque > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "EM CHEQUE....: " + ; TRANSF( nCheque, "@E 999,999.99" ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 ENDIF IF nChequePre > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "EM CHEQUE PRE: " + ; TRANSF( nChequePre, "@E 999,999.99" ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 ENDIF IF nTickets > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "EM TICKETS...: " + ; TRANSF( nTickets, "@E 999,999.99" ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 ENDIF IF nCartaoCred > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "EM C. CREDITO: " + ; TRANSF( nCartaoCred, "@E 999,999.99" ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 ENDIF IF nCartaoDebi > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "EM C. DEBITO.: " + ; TRANSF( nCartaoDebi, "@E 999,999.99" ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 ENDIF IF nContraVale > 0 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "EM C. VALE...: " + ; TRANSF( nContraVale, "@E 999,999.99" ), oFont,, ; CLR_BLACK,, PAD_LEFT ) nLinha += 0.30 ENDIF nLinha += 0.50 nColuna := 14.00 oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "" + XDATALISTA, ; oFont,, CLR_BLACK,, PAD_CENTER ) nLinha ++ oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ; "________________________________"+ ; "__________", ; oFont,, CLR_BLACK,, PAD_CENTER ) nLinha += 0.30 ENDPAGE ENDPRINT oFont:End() oFontLogo:End() oFontDivi:End() oFontList:End() oFontCurs:End() oFontSubl:End() oPen1:End() oPen2:End() oPen3:End()RETURN NIL
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
-
- Posts: 33
- Joined: Tue Jun 08, 2010 3:34 pm
- Location: Rosario, Santa Fe. Argentina
Re: TPRINTER como configurar los margenes?
Gracias Karinha por la respuesta, te cuento lo que me sucede, estoy migrando la impresión del sistema de TDosPrn a TPrinter y necesito que cada reporte coincida exactamente con los anteriores, entonces un listado no es problema pero los comprobantes donde el membrete debe coincidir si o si (ej. una factura) necesito que la impresión comience a una determinada altura.
Lo que proponés lo tengo hecho para hacer coincidir filas/columnas y me funciona bien pero no logra hacer que la impresión comience 1 cm aprox. más abajo.
Lo que proponés lo tengo hecho para hacer coincidir filas/columnas y me funciona bien pero no logra hacer que la impresión comience 1 cm aprox. más abajo.
Libreria: FWH/FWHX 9.11 25/November/2009
Harbour: Harbour 2.0.0 Beta2
Compilador: Borland C++ 5.5.1 versión 32 bits
Editor de Recursos: UEstudio 10.0
Gestor de B.D: A.D.A ( Advantage Data Architect )
S.O: Windows XP
Harbour: Harbour 2.0.0 Beta2
Compilador: Borland C++ 5.5.1 versión 32 bits
Editor de Recursos: UEstudio 10.0
Gestor de B.D: A.D.A ( Advantage Data Architect )
S.O: Windows XP
- karinha
- Posts: 7944
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: TPRINTER como configurar los margenes?
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
-
- Posts: 33
- Joined: Tue Jun 08, 2010 3:34 pm
- Location: Rosario, Santa Fe. Argentina
Re: TPRINTER como configurar los margenes?
Gracias otra vez Karinha por tu pronta respuesta, tengo el trabajo terminado y no puedo volver a empezar de nuevo con otra clase. De todas maneras intenté descargarla para ver si usa tprinter y si configura algo distinto pero el link ya no existe.
Existe algún link de descarga dentro de la página de fivetech donde pueda hallarla?
Desde ya muchas gracias.
Existe algún link de descarga dentro de la página de fivetech donde pueda hallarla?
Desde ya muchas gracias.
Libreria: FWH/FWHX 9.11 25/November/2009
Harbour: Harbour 2.0.0 Beta2
Compilador: Borland C++ 5.5.1 versión 32 bits
Editor de Recursos: UEstudio 10.0
Gestor de B.D: A.D.A ( Advantage Data Architect )
S.O: Windows XP
Harbour: Harbour 2.0.0 Beta2
Compilador: Borland C++ 5.5.1 versión 32 bits
Editor de Recursos: UEstudio 10.0
Gestor de B.D: A.D.A ( Advantage Data Architect )
S.O: Windows XP
- karinha
- Posts: 7944
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: TPRINTER como configurar los margenes?
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341