Hola a todos... Ayuda con impresión de tickets

Tengo una aplicación en PB 7.0 y necesito imprimir unos tickets en una impresora modelo STAR SP200. Probé el siguiente método:
Habro una trabajo de impresio
long job
string ls_print = '1225 AZUCAR $ 4.50'
job = PrintOpen()
imprimo una variable que contiene los datos del articulo
Print ( job, ls_print )
Cierro el trabajo de impresión
PrintClose ( job )
El problema esta en que cada vez que cierro el trabajo de impresión, PB saca mucho papel y cuando imprimo el siguiente artículo lo imprime mucho muy abajo del primero.
¿Hay alguna rutina para que se imprima el primer articulo sin que se recorra el papel tanto?, es decir, un articulo por renglón, ya revise la configuración de la impresora y no permite cambiar a que no de tantas vueltas el papel.
Ahora bien, PB no suelta la impresión si no se cierra el trabajo de impresión PrintClose ( job ) y se queda en STANBYE...
Ya realice el proceso guardando los datos en un archivo TXT y luego llamando al Run() pero esto ocasiona que se quede abierta una de las ventanas del DOS, e incluso la configuración del COMMAND.COM lo cambie a ventana minimizada y que se cierre cuando termina, pero aún así, llega un momento en que no ce cierra una ventana del DOS.
Esta impresión quiero saber si se puede desde PB y no usar un RUN() o algo externo, ya que la aplicación lee cada 0.5 segundos un código de barras y esto implica imprimir el artículo en ese mismo lapso de tiempo.

1 respuesta

Respuesta
1
Como bien dices la impresión no se efectúa hasta que haces un cierre del spool, lo que sucede es que al hace un PrintOpen(), esto te devuenve un numero, el cual es un numero de trabajo o spool, o en otras palabras una cola de impresión, esto significa que asume que tu estas integrando toda la impresión, entre el open y el close, por lo que mi recomendación es que hagas todo como si estuvieras imprimiendo, y luego cierres el spool, esto lo envía a la cola de impresión de windows, y a partir de allí, es cosa del sistema.
Las funciones de impresión son varias, (como ya te habrás dado cuenta), entre ellas PrintText, en la cual puedes definir la intentar de impresión con fila y columna, PrintSend con el cual puedes enviar un spool completo por ejemplo un datawindow.
Para finalizar.
Personalmente te recomiendo le eches un vistazo a las funciones relacionadas con la impresión, en el F1, existen algunos ejemplos en ella, y a lo mejor te pueden servir.
Ha y por cierto, no necesitas de hacer un run, eso lo puedes manejar tranquilamente con power builder.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas