Page 1 of 1

tPrinter urgente

Posted: Wed Jul 18, 2007 3:11 pm
by sysctrl2
Colegas, necesito urgentemente de su apoyo,

la cuestion es la siguiiente,

siempre he usado tdosprn para imprimir tickets en impresoras termicas

o las que comunmente les dicen impresoras fiscales,

la todosprn, trabaja exelentemente, corta papel, abre el cajon, etc.etc.

pero me han pedido que en el ticket salga el logo de la empresa

de inmediato vino a mi mente, TPRINTER,

Ya tengo programado el ticket con la tprinter incluyendo el Logo,

pero no veo la forma de decirle a la tprinter que la pagina

debe de terminar en la linea !!! GRACIAS POR SU COMPRA !!!

me saca la tira como si el papel fuera tamaño carta,,,

como decirle a la tprinter que es papel de rollo, que la pagina debe

de terminar en el momento que se imprima el ultimo caracter,

existe algo como SETPAGE( 0 ) o tendre que decirle al cliente

que no se puede !!!

saludos y disculpen la lata.

Posted: Wed Jul 18, 2007 3:46 pm
by Antonio Linares
César,

Prueba a usar oPrinter:SetSize( nWidth, nHeight )

Posted: Wed Jul 18, 2007 4:28 pm
by sysctrl2
Gracias Antonio,

resulta que el ticket no es de una medida estandard,

como en los supermercados,

la tira de papel es infinita, en _,,

a lo mejor calculando los renglones antes de mandar

imprimir,,

alguien mas tiene alguna idea ??

PrnSetSize() no funciona

Posted: Wed Jul 18, 2007 7:28 pm
by sysctrl2
Señores,

segun lo que en este foro se ha dicho el siguiente codigo

en teoria tendria que hacer lo siguiente:

PrnSetSize( 800, 1400 ) // 8cm x 14cm

PRINT oPrn TITLE cTitulo TO alltrim( (cImpresor)->printer1 )

oPrn:SetSize( 800, 1400 ) //no funciona

PAGE

oPrn:cmsay(1,1, 'TEXTO' , oFnt1 )
ENDPAGE
ENDPRINT

No respeta las medidas que se especifica en la funcion SetSize

ni antes de la definicion del objeto ni despues,,


saludos...

Posted: Wed Jul 18, 2007 9:18 pm
by Armando
César:

Alguna vez pasé por el mismo problema y resulta ser que yo esperaba ver el tamaño en la vista previa y con una impresora laser como impresora pre asignada, y nunca vi el resultado.

Hasta que puse como impresora pre asignada una impresora matriz de punto y mande a imprimir, hasta entonces vi que sí respetaba el tamaño que yo queria.

Sera que te pasa algo igual ?

Saludos

Posted: Wed Jul 18, 2007 9:43 pm
by sysctrl2
quetal Armando,

gracias por participar,

lo que comentas es cierto uno quisiera ver el resultado

en el preview

pero en mi caso, tambien ya probe directo a impresora,

y nada de nada , voy a seguir checando

debe de existir alguna forma

saludos.

Impresora de Tikets

Posted: Fri Jul 20, 2007 7:29 am
by Verhoven
Me he encontrado con el mismo problema y al final he desistido. He tenido que utilizar la clase tdosprint y configurando la impresora como Generic/Text Only para poder mandar los códigos de apertura de cajon, etc. Tratando la impresora de otra forma no funciona como se espera y hace saltos de pagina donde no debe, etc...

Si das con la solución te ruego nos lo hagas saber.

Posted: Fri Jul 20, 2007 4:39 pm
by sysctrl2
VerhOven

como bien comentas, hay que instalar el driver Generic/Tex Only,

a mi me funciono con el papel

Full Width 72mm * Receipt

y en la tprinter no necesite poner nada adicional.

print oPrn
page
oPrn:cmsay( 1,1,cVar, oFnt1 )
endpage
endprint


Dejad que Microsoft controle todo jajaj,

desgraciadamente es poco profesional la solucion

pero solucion al fin,,

Saludos cordiales..

Posted: Sat Jul 21, 2007 5:25 am
by Verhoven
Y para abrir el cajon de monedas, ¿cómo envías el código correspondiente a la impresora?.

Al ser Text Only, ¿Te imprime los tipos de letra de windows o solo caracter de texto?. ¿Cómo imprimes los gráficos (logos)?

Saludos.

Posted: Sat Jul 21, 2007 6:40 pm
by sysctrl2
Te respeta todos los font y graficos,

el corte de papel y apertura del cajon tambien lo puede controlar windows,,

pero una idea que me dio el buen Francisco Horta ,

puedes conbinar tprinter y tdosprn.


_abrecajon()

print oPRN
PAGE
* ......
ENDPAGE
ENDPRINT

_cortapeL()


function _abreCajon()
local oPrn
oPrn := TDosPrn():New('LPT1')
oPrn:Command( alltrim( (cAli)->abrecajon ) )
oPrn:end(, .f. )
return nil


function _CortarPapel( cAli)
local oPrn
oPrn := TDosPrn():New('LPT1')
oPrn:Command( alltrim( (cAli)->Cortar ) )
oPrn:end( .f., .f. )
return (.t.)

Poco sintetico pero solucion al fin !!!!!!!!!!!! jejeje..