Page 1 of 2
Impresion desde Pocket
Posted: Wed Mar 22, 2006 9:59 am
by Carles
Hola,
- Hay previsto realizar alguna clase para poder imprimir desde una Pocket ?
- Alguien tiene algun ejemplo de como abordar este tema ?
Saludos a todos
C.
Posted: Wed Mar 22, 2006 10:30 am
by Antonio Linares
Carles,
Por lo que se ha comentado aqui en los foros, la impresión se ha hecho via bluetooth, que en resumen es usar las funciones de uso de puertos comm.
Posted: Wed Mar 22, 2006 10:34 am
by Carles
Antonio,
Ya probe algun ejemplo q vi por el foro, pero la verdad no me 'rulo' correctamente. Si alguien me puede echar un cable se lo agredeceria
Nota: Se puede probar con el simulador el tema bluetooth ?
Gracias.
C.
user
Posted: Thu Mar 23, 2006 8:16 am
by mamartin
Yo imprimo mediante bluetooth.
El código que utilizo es el mismo que hay por el foro, pero
bueno aun así te pongo un ejemplo, por si te puede ayudar
en algo.
**************************
Local cTexto:=""
local hOut := CreateFile( "COM6:",GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL )
//com6 --> puerto com de salida
cTexto:= "TEXTO A IMPRIMIR" + chr(10) + chr(13) + chr(12)
SendText( hOut, cTexto )
CloseHandle( hOut )
**************************
FUNCTION SendText( hOut, cText )
local n
for n = 1 to Len( cText )
WriteByte( hOut, Asc( SubStr( cText, n, 1 ) ) )
next
RETURN NIL
Yo el problema que tenía era que no añadía al final de la cadena de texto el salto de página (chr(12)) con lo que el folio con el texto no llegaba a salir por la impresora.
Posted: Thu Mar 23, 2006 6:06 pm
by Biel EA6DD
Siguiendo con el tema de imprimir, yo lo hago de la siguinete manera.
Escribo el listado en un fichero ASCII,
bien con Set PRINTER TO <file> y luego imprimiento con ?"Texto" o Qout("texto")
o creando el fichero con fCreate, y montado el listado con fWrite
una vez terminado, lo imprimo con la funcion que cirucla por el foro para imprimir via bluetooth.
Code: Select all
...
Set( 24 , cDirLocal+'carga.prn',.F.) //Redirecciono a fichero
SET PRINTER ON
SET DEVICE TO PRINTER
BEGIN SEQUENCE
Exi->(dbGoTop())
Cabecera(++nPag,cTitulo,aRango,aLinCab) //Cabecera
While !Exi->(Eof())
If pRow()>26 .AND. Cfg->Prn=='S'
Cabecera(++nPag,cTitulo,aRango,aLinCab)
ENDIF
IF Exi->Ini<>0
? Exi->ArtCod,DescArt(Exi->ArtCod),Exi->Ini //Detalle
ENDIF
Exi->(dbSkip())
End
? Chr(12)
END SEQUENCE
SET PRINTER OFF
SET PRINTER TO
SendText( MemoRead( cDirlocal+'carga.prn')) //Envio al puerto serie
fErase(cDirLocal+'carga.prn')
...
//---------------------------------
FUNCTION SendText( cText )
//---------------------------------
LOCAL i, hOut := CreateFile( "COM6:",GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL )
IF hOut==-1
MsgStop('No pudo abrise el puerto de impresora')
ELSE
FOR i = 1 TO Len( cText )
WriteByte( hOut, Asc( SubStr( cText, i, 1 ) ) )
NEXT
CloseHandle( hOut )
ENDIF
RETURN NIL
Esto en impresoras conectadas por cable via RS232 funciona perfecto, pero con impresoras via bluetooth, no me termina el listado. Parece que no envia los datos a la impresora hasta tener una cantidad determinada de bytes. Con lo cual un trozo de listado se queda en el buffer, sin imprimir, y por ahora no se como vaciarlo(flush del com quizas).
Posted: Fri Mar 24, 2006 7:32 am
by Carles
Hola mamartin,
Gracias por tu respuesta. Voy a intentar experimentar hoy, pero tengo unas cuantas dudas conceptuales:
1.- Se imprime directamente a una impresora q tiene dispositivo bluetooth, o al ordenador via bluetooth y usando una de sus impresoras asignadas ? (joder, quizas he dicho alguna tonteria
)
2.- Como se configura los puertos en la Pocket ?
Biel,
Yo no tengo ni idea 'aun' para el manejo via bluetooth, pero al igual se deberia 'simular' un eject para forzar el vaciado del buffer (joder, me parece q la he vuelto a cargar...
)
Venga, saludos y gracias a todos. A ver si conseguimos controlar este tema.
C.
Posted: Fri Mar 24, 2006 10:20 am
by Biel EA6DD
Carles,
el tema blutooth va de la siguiente manera.
Tienes una impresora bluetotth, o un conversor bluetooth de estos que se conectan al puerto centronics de la impresora, y por otro lado tienes el pocket PC con bluetooht.
Primero se asocia un dispositivo con el otro, la manera de hacerlo depende de cada fabricante, con eso tienes el enlace entre los dos dispositivos.
En el Pocket PC, el dispositivo bluetoth es tratado como un COM, entonces lo que haces es escribir sobre el puerto serie que tiene asociado el dispositvo bluetooth de tu PPC, y este lo envia al otro elemento asociado, que es la impresora.
Espero haberte aclarado algo el tema.
Posted: Fri Mar 24, 2006 11:05 am
by Carles
Biel,
Ok. Enterado y aclarado -> gracias. Yo veo importante el hecho de poder transmitir un documento en casa de un 'cliente'. A partir de aqui, seguro q los 'clientes', no tendran impresoras con bluetooth o conversores de este tipo, pero si es posible, q tengan ordenadores con esta capacidad, por lo q la solucion pasaria por transmitirle el documento via bluetooth e imprimirlo desde su impresora asociada, si tiene.
En este caso, la transmision hacia el PC, se generaria usando el mismo concepto que para impresora, no ?. Voy a probar a ver....
Gracias.
C.
Posted: Fri Mar 24, 2006 12:39 pm
by astursoft
Carles , es raro el señor que tiene bluetooht en su ordenador , lo que si es mas normal es que el vendedor , lleve una impresora bluetooht en el coche , conectada al mechero ( de estas tipo ticket) , y le mande la impresion a ese dispositivo ( los repartidores de cocacola , los de seur etc , funcionan así) .
Saludso.
Posted: Fri Mar 24, 2006 3:17 pm
by Carles
Hola Jose Luis,
Entonces, cual crees q es la mejor manera si le tienes de pasar informacion a un cliente via Pocket ?
Saludos.
C.
Posted: Fri Mar 24, 2006 8:20 pm
by astursoft
yo creo que debemos distingir dos cosas :
1.- uso en autoventa o similar , donde lo que das es un albaran (o factura) , creo que en ese caso impresora de tickets bluetooth , lo mas portatil posible
en la furgoneta , mira esta
http://www.deremate.com.ar/accdb/viewIt ... I=11720052
, coche de viajante o similar ( incluso existiran posiblemente aparatos pocket con impresora incluidas).
Mira aqui a seguro que ves algo que te ilumina:D
(lo digo por lo de flamagas)
http://www.flamagas.com/default.asp?NODO=5506
2.- el pasar unos datos al cliente , en ese caso , lo mas facil es construir un archivo de texto plano ( como indica biel ) y mandar el texto a un email del cliente .Luego el hace con el lo que crea oportuno .
Yo uso este segundo metodo en mi programa , y es muy operativo .
Saludso.
Posted: Mon Mar 27, 2006 6:43 am
by Carles
Jose Luis,
Gracias por la iluminacion, uno no conocia este mundillo, jejeje. La opcion del email creo q es la q mejor se ajusta. Yo pensaba, q podria ser mas facil, traspasar un fichero, pero veo q hay demasiados factores a tener en cuenta. Al final y de momento., correo y tira palante.
Gracias a todos.
Saludos.
C.
Posted: Wed Mar 29, 2006 12:38 pm
by josevalle
Hola
Para imprimir en impresoras matriciales con bluetooth no hay problema. Lo que no se (y aún no he necesitado) es imprimir en impresoras windows. ¿Alguna experiencia?
Carles: Lo del mail para enviar un fichero a la central lo veo muy interesante. Avisanos si lo consigues.
Posted: Wed Mar 29, 2006 1:06 pm
by astursoft
A usar el ingenio muchachos.......
Como tip ( con un poco de trampa ) .
Resulta que los señores usuarios de las pda usan con la central un sistema de mail de vodafone llamado algo asi como PUSH ¿¿
Este sistema instala unas carpetas en el programa Tmail de microsoft de la pda para funcionar ( y nada de protocolos smtp y similar ).
Solucion .... usar el Tmail
Code: Select all
cTexto:= "Envio pedidos dia "+dtoc(date())+"a las " + Time() +" del Vendedor "+cVend
eSubject:="?Subject="+ cTexto
eBody:="&body=" + cTexto
eTo:="mailto:"+ cDestino
eAttachment:="&attach="+ oApli:cCurdir+cdirsal+"\"+cfile
CmdLine = eto+eSubject+ebody+eAttachment
Shellexecute(ownd:hWnd,"open","Tmail.exe" ,cMdLine )
Parece facil verdad ?
Pues no tanto aqui nos encontramos con microsoft que tiene un bug en su tmail.exe .
Si ponemos archivo adjunto nos borra el destinatario y el body del mensaje .
Tenemos que decidir entre que el usuario busque el archivo a adjuntar , y los textos aparezcan escritos , o que ya vaya el archivo adjunto , pero el usuario añada de la agenda el destinatario ( para eso está ) y escriba el texto .
Yo cogui esta segunda .
Para los que usan mail normal por gprs una muy buena opcion es instalar un programa mail free llamado "npop" que a diferencia del tmail NO TIENE EL BUG , y el proceso es mas sencillo (usar el mismo codigo de antes pero sustituye tmail.exe por npop.exe )
Espero os sirva , a mi me salva la vida .
Saludso.
Posted: Wed Mar 29, 2006 1:12 pm
by Carles
Jose Luis,
Muy bueeeeeno.
Code: Select all
A usar el ingenio muchachos.......
Siempre estamos con los tip y las trampas, jejeje. Lo importante es llegar al objetivo.
Thanks por el tip.
C.