Power Builder - Como imprimir en modo texto?

 
Vista:

Como imprimir en modo texto?

Publicado por sergio (44 intervenciones) el 30/05/2007 14:12:18
Hola amigos del foro, gracias por su tiempo, necesito saber como imprimir en modo texto con una impresora Epson TM U220, ya he probado con instalarle la impresora generica/solo texto del windows pero no funciona bien la impresion sale como encimada,
desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como imprimir en modo texto?

Publicado por Leopoldo Taylhardat (710 intervenciones) el 06/06/2007 00:44:22
Saludos... aquí tienes una rutiiiiiiina para que manejes la impresión con un archivo que se genera tipo texto... nota el .bat no corre en xp, debes colocar el comando RUN('...') al final con una variable que diga algo asi...
string ls_comando
ls_comando='copy ' + ls_nom_recibo +' lpt0'
RUN(ls_comando)
Nota: 'ls_nom_recibo' es la dirección completa del archivo que generes con la rutina...
Esta es la rutina... revísala... espero que te sirva...
lpt0 es el puerto donde esté conectada la impresora (lpt0, lpt1...)
Debes revisar longitud de la hoja (lineas de impresión), renglones que puedes imprimir, líneas de totales, etc...
Espero que te sirva...
------- Impresora POS ---------

String ls_string, ls_nom_recibo, ls_return
Long ll_lin_recibo, ll_lin_recibo2, ll_pagina, ll_linea, ll_job
Integer li_i, i, li_filenum, li_control
ls_nom_recibo = "C:\tmp\RC" + RIGHT(trim(string(recibo)),5) + ".txt"
li_FileNum = FileOpen( ls_nom_recibo, LineMode!, Write!, LockWrite!, Replace!)
ls_return = " "
//
// Se maneja el pool de impresion linea por linea.
if (ll_lin_recibo > 0 ) then
for li_i = 1 to 2
ll_pagina = 33

//Cantidad de items de la factura (máximo 4 items)
for ll_linea = 1 to ll_lin_recibo

if (ll_pagina >= 29 ) then

if (li_i = 2 ) then
//Dejar N lineas en blanco (margen superior)
//ls_string = "...inicio"
ls_string = " "
li_control =N
DO while li_control > 0
FileWrite(li_FileNum, ls_return )
li_control –-
LOOP
end if

//Imprimir el encabezado, son cinco líneas de encabezado
ls_string = ds_recibo.GetItemString(ll_linea,"cf_titulo1")
FileWrite(li_FileNum, ls_string )
ls_string = ds_recibo.GetItemString(ll_linea,"cf_titulo2")
FileWrite(li_FileNum, ls_string )
ls_string = ds_recibo.GetItemString(ll_linea,"cf_titulo3")
FileWrite(li_FileNum, ls_string )
ls_string = ds_recibo.GetItemString(ll_linea,"cf_titulo4")
FileWrite(li_FileNum, ls_string )
ls_string = ds_recibo.GetItemString(ll_linea,"cf_titulo5")
FileWrite(li_FileNum, ls_string )
//Imprimir separador del encabezado ls_string = fill("-",38) FileWrite(li_FileNum, ls_string )
ll_pagina = 9
end if
//Imprimir cuerpo de factura ls_string = ds_recibo.GetItemString(ll_linea,"texto")
FileWrite(li_FileNum, ls_string )
ll_pagina ++
next
//Imprimir separador de totales
ls_string = fill("-",38)
FileWrite(li_FileNum, ls_string )
//Imprimir Sub-Total
ls_string = ds_recibo2.GetItemString(ll_lin_recibo2,"cf_total1")
FileWrite(li_FileNum, ls_string )
//Imprimir separador de totales
ls_string = fill("-",38)
FileWrite(li_FileNum, ls_string )
//Imprimir Totales
ls_string = ds_recibo2.GetItemString(ll_lin_recibo2,"cf_total3")
FileWrite(li_FileNum, ls_string )
ls_string = ds_recibo2.GetItemString(ll_lin_recibo2,"cf_total4")
FileWrite(li_FileNum, ls_string )
//Imprimir separador de factura
ls_string = fill("-",38)
FileWrite(li_FileNum, ls_string )

ll_pagina += 6

ls_string = " "
// Imprimir hasta fin de página
for i = 1 to (33 - ll_pagina - 4)
FileWrite(li_FileNum, ls_string )
next
FileWrite(li_FileNum, ls_string )

next

// Dejar N lineas en blanco (margen superior)
ls_string = " "
ll_pagina=4
DO while ll_pagina > 0
FileWrite(li_FileNum, ls_string )
ll_pagina –
LOOP

end if

FileClose(li_FileNum)

Run(" C:\PRNREC.BAT " + ls_nom_recibo )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar