impresion de ticket por puerto USB

Loren
Posts: 458
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

impresion de ticket por puerto USB

Post by Loren »

Compañeros:

Estoy perfeccionando y añadiendo opciones nuevas a mi aplicación
http://forums.fivetechsupport.com/viewt ... resumiendo

Entre otras quiero darle la opción a que el usuario pueda seleccionar la salida de la impresión: Puerto LPTx o USB, dependiendo del tipo de impresora de ticket que disponga. Si es por puerto LPTx (como hasta ahora), no hay problemas pues siempre lo hice a traves de TDOSPRN. El problema está si el usuario selecciona USB por tener una impresora de ticket térmica. En este caso:
- ¿debo enviar la impresión mediante DEFINE PRINT...?
- Si es así... ¿Como controlo el corte de papel, la apertura del cajón portamonedas... etc...?
- He visto que incluso hay aplicaciones comerciales de TPV que imprimen hasta un logotipo en el ticket, ¿Como lo hacen?

Mil gracias.
A la espera de respuestas, saluda
Loren.
marca
Posts: 104
Joined: Mon Aug 13, 2007 5:22 pm
Location: Brazil
Contact:

Re: impresion de ticket por puerto USB

Post by marca »

Ola

Eu utilizo o Dosrpin.exe q. tem na net

*************************************//***************************************
FUNCTION ImpSpool( cFileTxt, cPorta, lErase )
*************************************//***************************************

IF Left(Upper(cPorta),3) = "USB" .OR. oPub:wImpJato // Usb Ou Jato de tinta

WAITRUN( oPub:wPathRaiz + "DOSPRIN /SEL'" + AllTrim(oPub:wPorta) + "' " + cFileTxt )
FErase( cFileTxt )

ELSEIF Left( Upper(cPorta),3) = "LPT" ......
Marcelo Ferro da Silveira
Fwh14.04/xHarbour 1.2.3 Simplex / Bcc582 / Pelles 8
SqlLib /xMate/WS
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: impresion de ticket por puerto USB

Post by Willi Quintana »

Hola,,,
Al igual que tu, me enfrente al mismo problema,,, impresoras de ticket del tipo USB, asi que la unica solucion rapida y sin cambiar codigo fue la siguiente:

Code: Select all

1.- Compartir la Impresora USB
2.- "Redireccionar" la salida LTP1 de dos maneras:
   a: En la archivo AUTOEXEC.NT que  se encuentra en \WINDOWS\SYSTEM32  colocar lo siguiente:
       NET USE LPT1 \\NOMBRE_PC\IMPRESORA_TICKET /PERSISTENT:YES

   b: Utilizar  la funcion  NETREDIR("LPT1","\\NOMBRE_PC\IMPRESORA_TICKET")  antes de realizar la impresion

Y sigues usando la TDOSPRINT con todas sus bondades.....

 
Salu2
User avatar
pablovidal
Posts: 398
Joined: Thu Oct 06, 2005 10:15 pm
Location: Republica Dominicana
Contact:

Re: impresion de ticket por puerto USB

Post by pablovidal »

La mejor opción es darle ese problema a Windows...

Code: Select all

Function PrintDosForWin()
Local cTexto     := ""
Local ON_GRANDE  := CHR(27) + CHR(33) + CHR(16) // Para Impresoras Epson
Local OFF_GRANDE := CHR(27) + CHR(33) + CHR(01) // Para Impresoras Epson
Local cPrinter   := GetDefaultPrinter()    // Seleciona la Impresora Por Defecto de Windows
Local CRLF       := CHR(13) + CHR(10)
Local cFileName  := "texto.prn"

cTexto += "Esta es la primera linea del texto" + CRLF
cTexto += Replicate( "*-", 20 ) + CRLF
cTexto += ON_GRANDE + "LETRAS GRANDES" + OFF_GRANDE + CRLF
cTexto += "Esta es otra linea de texto..." + CRLF
cTexto += PADL( "Izquierza", 40 ) + CRLF
cTexto += PADC( "CENTRALIZADO", 40 ) + CRLF
cTexto += PADR( "Derecha", 40 ) + CRLF
cTexto += PADC( "< Linea Final >", 40, "-" ) + CRLF


 If WriteStream( cFileName, cTexto )
  // Envia la Impresion al Spool de Windows
  PrintFileRaw( cPrinter, cFileName, "Impresion En Formato DOS desde Windows" )
  FERASE( cFileName )
 EndIF

Return Nil



// Esta Funcion la encontre por ahi...
FUNCTION WriteStream( cFile, cStream )
LOCAL nHandle := FCreate( cFile )

  IF FError() <> 0
   RETURN( .F. )
  ENDIF

  FWrite( nHandle, cStream, Len(cStream) )

 FClose( nHandle )

RETURN ( FError() == 0 )
Saludos,

Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: impresion de ticket por puerto USB

Post by cuatecatl82 »

Hola a la comunidad, tengo un problema y acudo austedes para que me orienten ya que no doy
con la solución, resulta que en mi sistema uso algunos reportes generados con la TDOSPRN, la
cual trabajaba bien en puertos LPT1,LPT2,LPT3, ya que uso impresoras matriciales para facturas y una laser
miniprinter en LPT2 para tickets, todo trabajaba bien, pero hace 2 dias una de las impresoras fallo y
no tiene reparación, asì que nos enganchamos de la impresora de otro departamento para trabajar
pero en ese departamento tienen una laser conectada a USB es una HP Laserjet 1018, la comparti
para usarla en la red y ya estan detectadas en las maquinas de la red, los reportes con TPrinter y TReport
trabajan bien, no asì los programanados con TDOSPRN, los genera y algunos los visualizo con vista previa (TXTPREV),
pero al mandarlos a impresión la pc se cuelga, el revisar el servicio de la cola de impresion de la pc
que tiene conectada la laser aparece el reporte como imprimiendo, pero no lo hace, si voy y lo imprimo en la maquina
directamente hace lo mismo, lo manda a la cola pero no imprime, sospecho que la clase TDOSPRN que uso no tiene soporte
a puertos USB, les dejo el ejemplo de como lo hago para que puedan darme una pista de donde podria estar la soluciòn.

No quisiera modificar los reportes porque son laboriosos ya que en ellos imprimo pagares de cuentas a credito y es un
problema volver a buscar la orientaciòn y los margenes de impresiòn.

http://www.megaupload.com/?d=O2JGM5GY

En el ejemplo que doy uso el "truco" que permite redireccìonar la impresion a otro puerto, pero no funciona,
he revisado por muchos post, pero no doy,

WINEXEC('NET USE LPT1: &cPuerto/Persistent:Yes ',0)

Supongo que encontrando la clase TDOSPRN con soporte a USB podre solucionarlo, ojala puedan ayudarme o si me
pudieran decir si existe dicha modificaciòn.
.

Gracias..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: impresion de ticket por puerto USB

Post by Willi Quintana »

Prueba asi:
,,,,,,
,,,,
,,
,
vServer := "COMMAND.COM /C NET USE \\cNomPc\cNomPrinter /persistent:yes"
WaitRun(vServer,0) // ejecutor externo

Salu2
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: impresion de ticket por puerto USB

Post by cuatecatl82 »

Hola Willi buen dia: :) :D

Te comento que ya lo habia probado antes y da el mismo resultado, hay algo que acabo de encontrar en el spool de la impresora, envie el mismo reporte con TDOSPRN 2 veces, si revisan la imagen se daràn cuenta que la primera impresion el tamaño esta en 0 bytes, mientras que la segunda que esta en espera tiene un tamaño de 411 bytes, eso me hace creeer que el problema esta en que la impresora no recibe la informaciòn a imprimir y se queda estancada hasta que desconecte la impresora para borrarla, si le doy cancelar impresiòn aparece el recuadro preguntando la confirmaciòn de la cancelaciòn, pero no la elimina de la lista. :twisted: :evil:

Image

Si alguien pudiera decirme si existe alguna modificación a la Clase para adaptarla a puertos USB estare muy agradecido.. :!: :oops: :cry: :mrgreen:

Saludos..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: impresion de ticket por puerto USB

Post by sysctrl2 »

paisa, has probado con DOSPRN ?

http://ba-k.com/showthread.php?t=482775

saludos...
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: impresion de ticket por puerto USB

Post by cuatecatl82 »

Cesar buenas Tardes:

No paisa :lol: , tampoco funciona :x , lo extraño es que con aplicaciones de Clipper si trabaja, no entiendo que pueda pasar, el problera radica en que talvez el puerto USB no interpreta bien el mandato a impresión ya intente con otros modelos de impresoras en otras computadoras y hace lo mismo, he conectado el cable a otros puertos y tampoco, parece que usar un puente con alguna aplicaciòn de terceros similar y realizar las modificaciones puedrìa ser la solución pero no me convence, lo mejor serìa hacerlo de la forma mas nativa posible, sigo investigando y si encuentro como realizarlo subire las modificaciones que realize.

Gracias.. :wink: :mrgreen: :mrgreen: :mrgreen:
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
derpipu
Posts: 93
Joined: Tue Mar 28, 2006 4:09 pm
Location: Tequila, Jalisco Mexico
Contact:

Re: impresion de ticket por puerto USB

Post by derpipu »

Amigos, yo hice un proceso medio dudoso pero eficiente, yo tambien uso el TDosPrn

1- primero compartan esa impresora en el equipo por ejemplo \\equipo\impresora
2- usando el comando net use desde la consola del DOS
net use lpt1: \\equipo\impresora /persistent:yes
3- el comando debe de decir que esta completado y ya...
4- al mandar a imprimir debera de salir correcto

saludos

LF
Luis Fernando Rubio Rubio
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: impresion de ticket por puerto USB

Post by sysctrl2 »

el problema es con impresoras laser.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: impresion de ticket por puerto USB

Post by cuatecatl82 »

Que tal Luis Fernando:

La soluciòn que comentas ya esta aplicada directamente desde el codigo, y aùn asì probando a imprimir un .PRN desde una ventada DOS el Comando lo completa, pero tambien se queta atascado en el spool de la impresora.

Cesar:
El Problema radica con impresoras USB Laser en modo remoto y local, en impresoras Laser en conecciòn LPT1 local y remoto lo hace bien, lo he problado con la lasr HP 1200 y 1100 sin problemas.

Sigo inisitiendo en que el problema lo radica TDOSPRN por la incompatibilidad directa con puertos USB, encontre una ultilidad que permite la impresiòn casi como la necesito pero tiene 2 inconvenientes:

1 Es de pago e imprime que es un programa demo y 2 por el tamaño y tipo de fuente que maneja internamente cambia de lugar los textos a imprimir, a primera instancia me parecio que era la soluciòn, pero desisti porque es una lata estar cambiando de ubicaciòn de los SAY`s() a imprimir sin saber a que tipo de impresora se enviara el reporte.

Sigo urgando estudiando y entendiendo la clase, el tiempo que tengo es poco y casi no puedo probar, buscando en la red encontre una Clase adaptada para USB, no la pude probar porque los enlaces a descarga estan muertos, si alguien pudiera prestarme un respaldo se lo agradecere, o si tienen alguna otra idea serà bienvenida...

Saludos.. :mrgreen: :mrgreen:
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: impresion de ticket por puerto USB

Post by Willi Quintana »

HOla,,, las indicaciones que he posteado, las uso sin mayor inconveniente,,, en todo caso te agrege a mi messenger, haz tu lo mismo,,,
ekasoftware@hotmail.com
Salu2
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: impresion de ticket por puerto USB

Post by cuatecatl82 »

Hola de nuevo buenas tardes, de nuevo aqui reviviendo post muertos pero sigo con el mismo problema :x , no habia continuado con la soluciòn del mismo porque estuve de vacaciones forzadas :cry: , y apenas hoy que regrese me encuentro que nos habian dado nuestra nueva impresora, la desempaco y la instalo, y pensando que el problema se habia resuelto, resulta que no, ahora es peor :evil: :!: :!: :?: :| , pues no solo TDOSPRN no funciona, si no que TPrinter tampoco, al momento de mandar a imprimir el reporte se queda congelado el sistema y no imprime.

Alguien tiene idea de que puede estar pasando ahora con TPrinter pues ni en local ni en remoto imprime. :cry: :x


Image
(Ahì se queda congelado y no avanza más, debo reiniciar para poder trabajar)

Antes con la impresora Laser en Lpt1 en red y local funcionaba TDOSPRN y TPrinter de maravilla.

Image

Porque ahora con esta impresora no, es una HP OfficeJet 4500 conectada al puerto USB y probada en modo local y remoto.

Image


PD: Willi Disculpa por no contestar antes, pero no puedo conectarme a Messenger desde mi trabajo, ya intente desbloqueando puertos, el problema esta en el 2wire, pero no tengo la contraseña prea accesar.. si pudieras contactarme por correro te lo agradecerìa, se que es una lata, pero es lo que puedo hacer por ahora.. :oops:

Lo curioso de todo este problema es que TReport si funciona en todos los modelos de impresoras ya sea conectados en modo local o en red con cable USB o LPT1.
En todas las maquinas uso XP Sp2

Quedo en espera de su bondadosa Ayuda.. Gracias..
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: impresion de ticket por puerto USB

Post by sysctrl2 »

paisa, has probado con \samples\testprn.prg ?

saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
Post Reply