FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Salto de pagina con PRINTER ( Resuelto) para imprimir Ticket
Posts: 392
Joined: Tue Jul 29, 2008 01:55 PM
Salto de pagina con PRINTER ( Resuelto) para imprimir Ticket
Posted: Sat Dec 26, 2009 09:57 PM

Estimados FiveWiners.

Estoy imprimiendo en una impresora de Tickets a través de la clase PRINTER, sin embargo, solo imprime a tamaño carta, aun que en la impresora defina otro tamaño del papel.

Lo que requiero es que la clase Printer no tome ningún tamaño predeterminado para imprimir el reporte, de hecho se imprime una tira del ticket muy larga y variada, imagínese una impresión tipo informe de boletos, que nunca se sabe cuantos se vendieron y en cada linea de impresión es la información de este.

Debo hacerlo con la clase Printer, ya que las impresoras se controlan por windows vista home premium. (requisito del cliente)

La impresora es una típica Epson TM-XXX, el efecto de la clase Printer es el mismo, sin importar el modelo de la Impresora.

MUESTRO LA PARTE DEL CODIGO QUE IMPRIME

IF  BOLVEN > 1
     PRINTER oPrnBol NAME "BOLETOS" TO "BOLTICK"
     DEFINE FONT oFn1 NAME cFont SIZE 0,- 8      OF oPrnBol
     DEFINE FONT oFn2 NAME cFont SIZE 0,- 8 BOLD OF oPrnBol
     oPrnBol:lPrvModal:=.T.
     oPrnBol:SetPortrait()
     nRow:=1.0
     CursorWait()
     PAGE
        oPrnBol:CmSay(nRow+=0.5, 3.7,cEmp,oFn2,,,,2)
        oPrnBol:CmSay(nRow+=0.5, 3.7,cDom,oFn1,,,,2)
        oPrnBol:CmSay(nRow+=0.5, 3.7,cRfc,oFn1,,,,2)
        cTit:="VENTAS DEL "+cf(cFec)
        oPrnBol:CmSay(nRow+=0.6,3.7,cTit,oFn1,,,,2)
        oPrnBol:CmSay(nRow+=0.6,0.5,W_TITULO02,oFn1,,,,2)
        nRow+=0.5
        oPrnBol:CmLine(nRow,0.3,nRow,7.2)
        oPrnBol:CmSay(nRow+=0.2,0.8,"No DOC" ,oFn1)
        oPrnBol:CmSay(nRow     ,3.0,"Bol"    ,oFn1,,,,1)
        oPrnBol:CmSay(nRow     ,4.5,"PAGO"   ,oFn1,,,,2)
        oPrnBol:CmSay(nRow     ,7.0,"IMPORTE",oFn1,,,,1)
        nRow+=0.5
        oPrnBol:CmLine(nRow,0.3,nRow,7.2)
        nRec:=(oDBol)->(Recno())
        (oDBol)->(DbGoTop())
        DO WHILE !(oDBol)->(EoF())
           oPrnBol:CmSay(nRow+=0.4,0.1,(oDBol)->NumDoc,oFn1)
           oPrnBol:CmSay(nRow     ,3.0,Tran((oDBol)->nPar,"9,999"),oFn1,,,,1)
           oPrnBol:CmSay(nRow     ,4.5,Bolserie(),oFn1,,,,2)
           oPrnBol:CmSay(nRow     ,7.0,Bolimporte,oFn1,,,,1)
           (oDBol)->(DbSkip())
           nREN++
        ENDDO

        nRow+=0.6
        oPrnBol:CmLine(nRow,0.3,nRow,7.2)
        (oDBol)->(DbGoTo(nRec))
        oPrnBol:CmSay(nRow+=,4.4,"TOTAL DE BOLETOS:",oFn1,,,,1)
        oPrnBol:CmSay(nRow     ,5.8,Tran(BOLVEN,"9,999")  ,oFn1,,,,1)
        oPrnBol:CmSay(nRow+=,4.4,"CANCELADOS:"          ,oFn1,,,,1)
        oPrnBol:CmSay(nRow     ,5.8,Tran(BOLCAN,"9,999")  ,oFn1,,,,1)
        oPrnBol:CmSay(nRow+=,0.8,"IMPORTES:",oFn1)
        oPrnBol:CmSay(nRow+=,3.0,"REDONDEO       ",oFn1)
        oPrnBol:CmSay(nRow     ,7.0,Tran(aBol[10],"9,999,999.99"),oFn1,,,,1)
        oPrnBol:CmSay(nRow+=,3.0,"EFECTIVO      $",oFn1)
        oPrnBol:CmSay(nRow     ,7.0,Tran(aBol[ 3],"9,999,999.99"),oFn1,,,,1)
        oPrnBol:CmSay(nRow+=,3.0,"TARJETA",oFn1)
        oPrnBol:CmSay(nRow     ,7.0,Tran(aBol[ 4],"9,999,999.99"),oFn1,,,,1)
        oPrnBol:CmSay(nRow+=,3.0,"CHEQUES",oFn1)
        oPrnBol:CmSay(nRow     ,7.0,Tran(aBol[ 5],"9,999,999.99"),oFn1,,,,1)
        oPrnBol:CmSay(nRow+=,3.5,"CONTADO ->",oFn1)
        oPrnBol:CmSay(nRow     ,7.0,Tran(aBol[ 7],"9,999,999.99"),oFn1,,,,1)
        oPrnBol:CmSay(nRow+=,3.5,"CREDITO   ->",oFn1)
        oPrnBol:CmSay(nRow     ,7.0,Tran(aBol[ 8],"9,999,999.99"),oFn1,,,,1)
        oPrnBol:CmSay(nRow+=,3.0,"Total Vendido        $",oFn1)
        oPrnBol:CmSay(nRow     ,7.0,Tran(aBol[ 9],"9,999,999.99"),oFn1,,,,1)
        nRow+=0.6
        oPrnBol:CmLine(nRow,0.3,nRow,7.2)
     ENDPAGE
     oFn1:End(); oFn2:End()
  ENDPRINT

ENDIF

ALGUNA AYUDA?
Gracias

Visite Chiapas, el paraiso de México.
Posts: 392
Joined: Tue Jul 29, 2008 01:55 PM
Re: Salto de pagina con PRINTER ( Resuelto)
Posted: Mon Dec 28, 2009 06:47 PM

Hola FiveWinners

Gracias a Robert Frank del foro en ingles, he resuelto el problema...

El problema esta en el driver de la impresora de ticket, en este caso estoy usando un DRIVER BIXOLON POS PRINTER DRIVER para controlar las impresoras EPSON TM-XXX, ya que EPSON NO provee un buen driver para windows vista.

La solucion fue modificar en las propiedades de la impresora, seleccionando el tipo de papel 80x3276 mm y en preferencias de impresion seleccionar: Recipt(partial cut)

con esta solucion estoy evitando el uso de otras clases para impresion de tickets, solo uso la clase Printer, a demas la clase me permite imprimir, Imagenes, texto, y codigo de barras.

Espero que les sirva.

Saludos

Visite Chiapas, el paraiso de México.
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: Salto de pagina con PRINTER ( Resuelto) para imprimir Ticket
Posted: Mon Dec 28, 2009 07:17 PM

el detalle esta en dejarle el control al windows ,

es bueno saberlo.

saludos.

Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "

Continue the discussion