Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Directo a Zebra S4M por USB (https://www.clubdelphi.com/foros/showthread.php?t=62543)

manueljgc 31-12-2008 16:20:04

Directo a Zebra S4M por USB
 
Saludos muy cordiales a todos.

Desarrollo una aplicación para imprimir etiquetas en una Zebra S4M por puerto USB. Genero un archivo texto con todas las instrucciones para imprimir las etiquetas. La idea es enviar ese archivo de texto a la impresora para que imprima las etiquetas.

Deseo saber si alguien conoce como enviar directamente el archivo de texto al puerto de la impresora (en este caso USB002). Actualmente me funciona usando NET USE pero no es la idea.

Debe existir una manera de imprimir directamente al puerto USB.

Muchas gracias.

cHackAll 31-12-2008 21:46:00

Si usas "net use" significa que es una impresora en red? talvez si nos muestras como usas ese "archivo de texto".

Saludos

manueljgc 01-01-2009 05:03:59

Local Zebra S4M conectada al puerto USB.
 
Es una impresora local Zebra S4M conectada al puerto USB.
El archivo de texto contiene secuencia de caracteres para generar
las etiquetas. Ejemplo: ^BN^0013

La cuestión es enviar el archivo directamente al puerto USB002.

Saludos, muchas gracias.

cHackAll 02-01-2009 16:31:30

Código Delphi [-]
//...
 hDevice := CreateFile('\\.\USB002',GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);  
 WriteFile(hFile, Buffer, Count, Dummy);

manueljgc 02-01-2009 18:26:55

Gracias. Pero podría explicar, por favor.
 
Cita:

Empezado por cHackAll (Mensaje 332922)
Código Delphi [-]
//...
 hDevice := CreateFile('\\.\USB002',GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);  
 WriteFile(hFile, Buffer, Count, Dummy);

Gracias. Pero podría explicar, por favor.

Podría explicar la declaración de variables y que hace el código.

Creo que a WriteFile le falta un parámetro.

Hice la prueba pero no me funciona. Ajuste el código según
mi criterio.

Puede ser un poco más claro por favor.

Muchas gracias y disculpe.

Saludos.

cHackAll 04-01-2009 16:05:35

Si bueno disculpa manueljgc, efectivamente le falta un parametro a la segunda API...

Lo que te insinué con dicho codigo es que abras el dispositivo como tal (un dispositivo), usando CreateFile deberias lograrlo, y solo te puse esas dos lineas para saber si es el camino correcto.

PD; el ultimo parametro de WriteFile debiese ser "nil", aunque basta si hDevice (Cardinal) es distinto a INVALID_HANDLE_VALUE

Saludos

seoane 04-01-2009 16:42:49

Una pregunta chackall ¿se puede abrir el puerto usb de esa manera?. Ahora mismo no puedo comprobarlo, pero creo recordar que en su momento probé a hacerlo de esa manera y no funciono. Al final tuve que hacerlo usando las funciones de la API para manejar las impresoras.

juanelo 04-01-2009 19:12:40

Estoy seguro que esto te puede ayudar, tenia el mismo problema y ya quedo solucionado.
Saludos

cHackAll 04-01-2009 21:26:25

Cita:

Empezado por seoane (Mensaje 333162)
Una pregunta chackall ¿se puede abrir el puerto usb de esa manera?...

Si no me equivoco... :rolleyes:

Aunque ya lo dijeron, OpenPrinter y demás son mas apropiadas :o


La franja horaria es GMT +2. Ahora son las 01:17:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi