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
Re: TPRINTER como configurar los margenes?
Mira si ayuda:
Code: Select all
#Define PAD_LEFT 0
#Define PAD_RIGHT 1
#Define PAD_CENTER 2
STATIC 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
-
- 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
Re: TPRINTER como configurar los margenes?
Hola, talbéz sea mejor que uses las clases de rafa carmona:
http://forums.fivetechsupport.com/viewt ... =17&t=2501
salud2
http://forums.fivetechsupport.com/viewt ... =17&t=2501
salud2
João Santos - São Paulo - Brasil
-
- 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
Re: TPRINTER como configurar los margenes?
João Santos - São Paulo - Brasil