Page 1 of 1

ayuda tdosprn

Posted: Tue Apr 10, 2007 5:02 pm
by horacio
Amigos : EStoy trabajando en una Epson LX810 y quiero imprimir un recibo, original y duplicado. Están uno debajo del otro. He configurado la página ( 19 cm x 40 cm. papel continuo ). Sin embargo cuando imprimo no respeta estas medidas y corre más allá del corte de hoja. Mi pregunta es si puedo, desde código , configurar la página. y si no es así que debo hacer para configurar bien el corte de hoja ?. He visto los dip que trae la impresora pero solo me configura algunos tamaños del papel. Desde ya muchas gracias.

Re: ayuda tdosprn

Posted: Tue Apr 10, 2007 5:15 pm
by Miguel Rivera
Amigo:

Puedes mostrar el codigo que imprimes, sobre este tipo de papel.


horacio wrote:Amigos : EStoy trabajando en una Epson LX810 y quiero imprimir un recibo, original y duplicado. Están uno debajo del otro. He configurado la página ( 19 cm x 40 cm. papel continuo ). Sin embargo cuando imprimo no respeta estas medidas y corre más allá del corte de hoja. Mi pregunta es si puedo, desde código , configurar la página. y si no es así que debo hacer para configurar bien el corte de hoja ?. He visto los dip que trae la impresora pero solo me configura algunos tamaños del papel. Desde ya muchas gracias.

tdosprn

Posted: Tue Apr 10, 2007 5:46 pm
by sysctrl2
Amiguito, aqui un ejemplo: con la tdos prn.

oPrn := TDosPrn():New( "lpt1" ) //iniciamos el objeto tdosprn.

oPrn:command( "27","67", "45" ) //7.5"pulgadas ,salto es cada 45renglones.

oprn:end()


saludos...

Posted: Tue Apr 10, 2007 11:07 pm
by Armando Picon
Aquí en el foro hay varios ejemplos para setear la impresión para recibos o facturas. Si en caso no lo consiguieras, envíame un email a mi correo y te proporciono lo que en su momento lo deje aquí en el foro como ejemplo (eso fue el año pasado, me parece recordar y también yo uso una EPSON LX810)

Posted: Wed Apr 11, 2007 2:01 pm
by horacio
Agradezco a todos los que se han interesado en mi problema. Ya lo pude solucionar con la data que me paso Sysctrl2. Muchas gracias por todo

Posted: Thu Apr 12, 2007 9:48 pm
by csincuir
Hola Horacio, sería tan amable de indicarme como solucionaste tu problema, yo estoy en las mismas de controlar el salto de página con la TDosPrn y no he podido hacerlo.

Gracias y saludos.

Carlos Sincuir.

Posted: Thu Apr 12, 2007 10:59 pm
by sysctrl2
Carlos es muy facil.

dejO aqui un ejemplo mas completito migrado de fox pro

a fw.

Para esto necesitas la class TDOSPRN

#define INICIAPRN '27,64'
#define SELECTDRAF '27,120,48'
#define SELECTLQ '27,120,49'
#define SELECTROMA '27,107,48'
#define SELECTSSER '27,107,49'
#define ONENFATIZADO '27,69'
#define OFFENFATIZADO '27,70'
#define ONDOBLEANCHO '27,87,1'
#define OFFDOBLEANCHO '27,87,0'
#define ONDOBLEALTO '27,119,1'
#define OFFDOBLEALTO '27,119,0'
#define ONDOBLEPASADA '27,71'
#define OFFDOBLEPASADA '27,72'
#define ONSUPERSCRIPT '27,83,0'
#define ONSUBSCRIPT '27,83,1'
#define OFFSUPERSUB '27,84'
#define ONITALICA '27,4'
#define OFFITALICA '27,5'

function testPrn()

oPrn := TDosPrn():New( "LPT1" ) &&iniciamos el objeto tdosprn.
oPrn:command( INICIAPRN ) && iniciamos la impresora
oPrn:command( "27","67", "18" ) && el salto es a los 18 renglonres
&& 1 pulgada "" equivale a 6 reng.
oPrn:command( SELECTROMA ) && me gusta la letra roman

dbselectArea( 'clientes' )
dbgotop()
nRow := 1
do while !eof()
oPrn:say(nRow. 1, field->codigo )
oPrn:say(nRow, 10, field->nombre)
nRow++
if nRow >= 15 && brincamos a una nueva pagina.
nRow := 1
endif
sysrefresh()
dbskip()
enddo

oPrn:end() && terminamos el objeto tDosPrn.


return .t.


Saludos Cordiales ...

Posted: Fri Apr 13, 2007 12:04 pm
by csincuir
Gracias Cesar, eres muy amable, ahora mismo me pongo a hacer las pruebas.

Saludos.

Carlos Sincuir