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..