FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TdosPrn con Preview e impresoras laser
Posts: 92
Joined: Fri Nov 18, 2005 11:15 PM
TdosPrn con Preview e impresoras laser
Posted: Tue Feb 07, 2006 11:47 PM

Estimados amigos del foro:

Como muchos de ustedes uso la clase TdosPrn modificada por Ednaldo Rolim que nos da la opcion de previsualizar los reportes (una excelente clase) antes de imprimirlas en impresoras matriciales.

Sin embargo me encontre con clientes que tenian impresoras Laser USB, u otras con tarjeta de red y se quejaban de que no podian imprimir desde este preview. Habia que hacer algunos trucos con NET USE LPTx para que se pudiera redireccionar la impresion a esas impresoras, lo que resultaba un tanto molesto.

Me preguntaba si es que tendria que rehacer todos mis reportes en las que usaba la clase TdosPrn para cambiarlos a tReport o tPrinter, pues con esas clases los reportes no tenian problemas al imprimir en cualquier impresora.

Investigando la clase TxtPreview (llamada por TdosPrn), encontre que la previsualizacion la hace usando otra clase fGet (de Ramon Avenda帽o), la misma que tiene un metodo Print() que llama a la clase tPrinter (entendieron el rollo?).

Bueno.... con unas horas (dias?) de trabajo pude hacer algunas modificaciones en ambas clases (txtpreview y fGet) para conseguir imprimir en tama帽os de fuente apropiados para laser y ahora el problema de imprimir en CUALQUIER IMPRESORA se termino! (al menos eso creo)

No tengo que modificar mis reportes antiguos !!! (que heredo desde DOS) y puedo "convertirlos" a modo grafico (lo he probado en varios modelos laser y de inyeccion de tinta con exito). La fuente con la que imprime es "Lucida console" que esta todas las PC a partir de windows XP. Por ahora solo reconoce 2 tama帽os de fuentes el modo "normal" y "comprimido" (que para mi es suficiente). Si alguna mente mas lucida sugiere algunos cambios para imprimir otros tipos de fuente, sea bienvenida.

Les paso los fuentes para quienes les interese, espero no estar violando derechos de autor, aclaro que las clases mencionadas no son mias. Es un peque帽o aporte por lo mucho que he recibido de este foro.

Pueden descargar los fuentes y un ejemplo desde www.solupymes.com/fwin/tdosprev.zip

Saludos

Ralph del Castillo

Ralph del Castillo

Lima PERU

Fwh 24.07, xHb123_10193, MySQL 8.x, BCC 7.3
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
TdosPrn con Preview e impresoras laser
Posted: Thu Jul 13, 2006 05:53 PM
Sobre esta clase,

Amigo, trate de varias formas de crear la clase y ejemplo que esta en ese zip pero me saltan errores, los que detallo.

BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'CARETFLINE' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'DRAWFGETLI' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'LENFLINE' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'HEIGHTFLIN' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'WIDTHFLINE' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'FORMATFLIN' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'TFLINE' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'SETFCLIPDA' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'GTFTORTF' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'ISGTF' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'GETFCLIPDA' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'ISRTF' : unresolved external
BLINKER : 1115 : D:\PRUEBAS\TDOSPREV\LIBRERIA\LIB\FGET.LIB(FGET) : 'RTFTOGTF' : unresolved external

Podr铆as ayudarme por favor.
Gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 92
Joined: Fri Nov 18, 2005 11:15 PM
TdosPrn con Preview e impresoras laser
Posted: Thu Jul 13, 2006 06:09 PM

que version de fw estas usando? Yo uso FW26 y no hay problemas.

Ralph del Castillo

Lima PERU

Fwh 24.07, xHb123_10193, MySQL 8.x, BCC 7.3
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
TdosPrn con Preview e impresoras laser
Posted: Thu Jul 13, 2006 06:11 PM

a perfecto,

tengo la fw21 por eso entonces.

Gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 332
Joined: Thu Nov 17, 2005 09:11 PM
Re: TdosPrn con Preview e impresoras laser
Posted: Thu Jul 13, 2006 09:40 PM
ralph wrote:Estimados amigos del foro:

Como muchos de ustedes uso la clase TdosPrn modificada por Ednaldo Rolim que nos da la opcion de previsualizar los reportes (una excelente clase) antes de imprimirlas en impresoras matriciales.

Sin embargo me encontre con clientes que tenian impresoras Laser USB, u otras con tarjeta de red y se quejaban de que no podian imprimir desde este preview. Habia que hacer algunos trucos con NET USE LPTx para que se pudiera redireccionar la impresion a esas impresoras, lo que resultaba un tanto molesto.

Me preguntaba si es que tendria que rehacer todos mis reportes en las que usaba la clase TdosPrn para cambiarlos a tReport o tPrinter, pues con esas clases los reportes no tenian problemas al imprimir en cualquier impresora.

Investigando la clase TxtPreview (llamada por TdosPrn), encontre que la previsualizacion la hace usando otra clase fGet (de Ramon Avenda帽o), la misma que tiene un metodo Print() que llama a la clase tPrinter (entendieron el rollo?).

Bueno.... con unas horas (dias?) de trabajo pude hacer algunas modificaciones en ambas clases (txtpreview y fGet) para conseguir imprimir en tama帽os de fuente apropiados para laser y ahora el problema de imprimir en CUALQUIER IMPRESORA se termino! (al menos eso creo)

No tengo que modificar mis reportes antiguos !!! (que heredo desde DOS) y puedo "convertirlos" a modo grafico (lo he probado en varios modelos laser y de inyeccion de tinta con exito). La fuente con la que imprime es "Lucida console" que esta todas las PC a partir de windows XP. Por ahora solo reconoce 2 tama帽os de fuentes el modo "normal" y "comprimido" (que para mi es suficiente). Si alguna mente mas lucida sugiere algunos cambios para imprimir otros tipos de fuente, sea bienvenida.

Les paso los fuentes para quienes les interese, espero no estar violando derechos de autor, aclaro que las clases mencionadas no son mias. Es un peque帽o aporte por lo mucho que he recibido de este foro.

Pueden descargar los fuentes y un ejemplo desde www.solupymes.com/fwin/tdosprev.zip


Saludos

Ralph del Castillo


Ola Ralph

A mi el report no funciona en windows 98 e impressora Epson fx-2180 la fonte passa de la margen.
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
TdosPrn con Preview e impresoras laser
Posted: Wed Oct 22, 2008 10:27 AM

Caro Ralph

Posso usar essa classe com FWH Vers茫o 8.08

Vou ter que modificar qualquer uma das seguintes PRG 's que vem junto com FWH vers茫o 8.08 para obter uma visualiza莽茫o e impress茫o para DOS usando o TextPrev.Prg

Fget.Prg
FGet.Ch
Printer.Prg
TDosPrn.Prg

Atenciosamente

Anser


Estimado Ralph

驴Puedo utilizar esta clase con FWH, versi贸n 8.08

驴Tengo que modificar cualquiera de los siguientes PRG 's que viene junto con FWH Ver 8.08 para obtener una vista previa e imprimir a DOS utilizando el TextPrev.Prg

Fget.Prg
FGet.Ch
Printer.Prg
TDosPrn.Prg

Recuerdos

Anser

Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
TdosPrn con Preview e impresoras laser
Posted: Thu Oct 23, 2008 08:16 AM

Soy capaz de ver la vista previa a pesar de peque帽os problemas hay en la pantalla de la p谩gina, pero la impresi贸n no se realiza en modo DOS, pero est谩 utilizando el modo gr谩fico (impresi贸n lenta)

En la vista previa he encontrado los siguientes problemas
1) En la parte inferior de cada p谩gina, la primera l铆nea de la p谩gina siguiente se agregar谩 tambi茅n.

驴Puede alguien ayudarme en este respecto. Yo muy mal necesario la soluci贸n de impresi贸n para DOS con una vista previa y selecci贸n de p谩ginas para imprimir

Gracias de antemano

Anser

Posts: 92
Joined: Fri Nov 18, 2005 11:15 PM
TdosPrn con Preview e impresoras laser
Posted: Fri Oct 24, 2008 02:24 AM
Les sugiero revisar este mensaje:

http://www.fivetechsoft.com/forums/viewtopic.php?t=6999

con esta version puedes imprimir tanto en impresoras matriciales (modo texto) como en modo grafico (impresoras laser)

saludos

ralph
Ralph del Castillo

Lima PERU

Fwh 24.07, xHb123_10193, MySQL 8.x, BCC 7.3
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
TdosPrn con Preview e impresoras laser
Posted: Fri Oct 24, 2008 08:58 AM

Estimado Raplh,

Estoy utilizando FWH 8,08 con xHarbour.

He descargado el c贸digo fuente y la muestra de la p谩gina web proporcionada por usted www.solupymes.com/fwin/tdosprev.zip

El Prueba.exe tambi茅n se encuentra en que el archivo zip (EXE es generado por usted). Incluso si lo intento exe que es s贸lo la impresi贸n en modo gr谩fico (lento) y no es como si vas al s铆mbolo del sistema y el tipo DIR> PRN.

Si yo uso puramente TDOSPRN a LPT1 (sin vista previa) y luego la impresi贸n es muy r谩pido.

Si yo uso TDOSPRN con TxtPreview y si imprimir desde la vista previa de la impresi贸n en modo gr谩fico (impresi贸n lenta)

Cualquier ayuda en relaci贸n con este va a ser muy 煤til para m铆.

Recuerdos

Anser

Posts: 92
Joined: Fri Nov 18, 2005 11:15 PM
TdosPrn con Preview e impresoras laser
Posted: Fri Oct 24, 2008 05:50 PM

A ver si logramos entendernos:

La funcion TxtPreview.prg puede previsualizar de 2 modos: texto y grafico

Mira el ultimo parametro de la funcion:
TxtPreview( cFile, cTitulo, lModal,,, oPrn, oDlg, , lModoGraf )

Lo que yo hago, es que antes de imprimir, el usuario selecciona si tiene impresora matricial o laser, segun eso escojo que parametro mandar a la funcion.

  1. Si el usuario escoje una impresora matricial, previsualizas en modo texto, y al enviar a la impresora se ejecuta el comando DOSPRINT.BAT por lo que la impresion es rapida.

  2. Solo previsualizo en modo grafico cuando voy a imprimir en una laser o inkjet

Si estas haciendo eso, no deberias tener problemas.

Saludos

Ralph

Ralph del Castillo

Lima PERU

Fwh 24.07, xHb123_10193, MySQL 8.x, BCC 7.3
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
TdosPrn con Preview e impresoras laser
Posted: Sat Oct 25, 2008 05:44 AM
Ralph,

De alguna manera tengo que trabajar ahora. Gracias por tu clase.

La raz贸n de mis problemas son

En mi aplicaci贸n he tenido que especificar la ruta completa para dosprint.bat (Es mi aplicaci贸n porque hab铆a algunos otros ajustes para cambiar la ruta por defecto)

Por ejemplo:

if file('d:\Winacs\dosprint.bat')
    WAITRUN("DOSPRINT.BAT " + cTxtTmp + " " + cPorta, 0 )
else
   / / Mi PC se cuelga Si yo utilizar esta opci贸n WinExec WindowsXP
   cPorta: = "PRN"
   winexec( "start c:\Windows\system32\command.com /c copy /b "+ cTxtTmp + " " + cPorta)
Endif


Mi PC se cuelga Si no he utilizado el comando Net use Lpt1: \\PcName\ShareName

Mi situaci贸n actual:

Tengo una red de alrededor de
a) 10 PC's
b) 3 impresoras matriciales
c) 1 en Impresoras L谩ser
d) 1 impresora inyecci贸n de tinta

El usuario puede seleccionar cualquier impresora que se desee a partir de la opci贸n Seleccionar la impresora en la ventana de vista previa. Pero ahora usando esta clase, si no he utilizado el comando - Net use Lpt1: \\PcName\ShareName - PC no se imprime si el usuario seleccione matriciales, l谩ser o de inyecci贸n de tinta de impresora. Resumen de la impresi贸n es que va a suceder s贸lo si se captura LPT1

Ralph, 驴c贸mo manejar esta situaci贸n en su idea.


Mi intenci贸n es que:
si el usuario seleccione una impresora de matriz de puntos
---- Luego debe obtener DOSPRINT.BAT ejecutados
si el usuario selecciona cualquier otra impresora de matriz de puntos, es decir, l谩ser o de inyecci贸n de tinta
---- Luego de impresi贸n normal debe suceder



Ralph, 驴c贸mo calcular la longitud de p谩gina? En su muestra test.prg no he podido encontrar un salto de p谩gina dado

Para, por ejemplo,
If nLin> nMaxLine
    / / No hay oPrn: EndPage () y oPrn: StartPage () Entonces, 驴c贸mo es el salto de p谩gina hecho
Endif


Recuerdos

Anser
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
TdosPrn con Preview e impresoras laser
Posted: Sat Oct 25, 2008 09:05 AM

Estimado Ralph,

Mis observaciones de la clase TxtPreview

TxtPreview( cFile, "Anser Test", .T.,lSpool,cPort, oPrn, WndMain(), , lGraphics )

a) LPT1 debe ser capturado para la impresi贸n r谩pida de DOS a trabajar a partir de TxtPreview a una impresora de matriz DOT

b) Si LPT1 no es capturado y es lSpool. T., y es lGraphics. F. entonces no ocurre nada cuando el usuario haga clic para imprimir

c) Si LPT1 si no es capturado y es lSpool. F., y es lGraphics. F. entonces se bloquea PC y salga anormal cuando el usuario haga clic para imprimir

d) U puede imprimir en l谩ser y Injet impresoras s贸lo cuando se lGraphics. T.

Raplh 驴hay alguna manera de identificar si el usuario selecciona una impresora de matriz de puntos o l谩ser / inyecci贸n de tinta, de modo que desde el interior de la clase TTextPrev podemos cambiar el valor de lGraphics a cualquiera. T. o . F. que resuelve el problema

Recuerdos

Anser

Posts: 92
Joined: Fri Nov 18, 2005 11:15 PM
TdosPrn con Preview e impresoras laser
Posted: Mon Oct 27, 2008 05:21 AM
He hecho unas modificaciones en la clase Tdosprn para seleccionar algunos parametros antes de imprimir:

1. Poder seleccionar la impresora,
2. Seleccionar el modo de impresion (texto o grafico)
3. Indicar la cantidad de lineas por pagina
4. Si se desea previsualizar o no

No conozco como saber si una impresora es laser, por eso el usuario debe indicar el modo de impresion.

Pueden descargar desde aqui: http://www.solupymes.com/fwin/tdosprevn.zip

Saludos

Ralph
Ralph del Castillo

Lima PERU

Fwh 24.07, xHb123_10193, MySQL 8.x, BCC 7.3
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
TdosPrn con Preview e impresoras laser
Posted: Tue Oct 28, 2008 05:51 AM

Estimado Ralph,

I y se intenta hacerle saber mi opini贸n. De ave sido mejor si tuvi茅ramos una opci贸n para averiguar si el usuario selecciona la impresora es de matriz de puntos (Texto) o l谩ser / inyecci贸n de tinta (gr谩ficos) y, en consecuencia, el c贸digo para generar la vista previa

Recuerdos

Anser
English


Spanish

Translate

Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
TdosPrn con Preview e impresoras laser
Posted: Wed Oct 29, 2008 06:48 AM
Estimado Ralph

He intentado su 煤ltima versi贸n, pero lamentablemente no es el texto que aparece en la ventana de vista previa. Ventana de vista previa est谩 en blanco. Tuve el mismo problema cuando utiliza la versi贸n anterior de la clase, pero me corrige este problema utilizando la ruta completa en el cFile

SetMTxtPreview (.F., 5, 2,.F.,.T.)
cPort: = "LPT1"
cFile: = "D: \ TEST.PRN"
oPrn: = TDosPrn ():New(cFile)
TxtPreview (cFile ", Anser Test",. T.,,, oPrn, WndMain (),,.F.)


Pero este truco no funciona con la versi贸n actual, que le proporcion贸 y, por tanto, no de salida en la ventana de vista previa. 驴Tiene alguna sugerencia sobre c贸mo resolver el problema de la vista previa?

Ralph,

Con el siguiente c贸digo se puede identificar si una impresora seleccionada es matriz de puntos o no


Si oPrn: nLogPixelX () <= 350, entonces es una impresora de matriz de puntos

 Si oPrn: nLogPixelX () <= 350
MsgInfo ( "Matriz de puntos nLogPixel es" + str (oPrn: nLogPixelX ()))
Algo m谩s
MsgInfo ( "InkJet / l谩ser nLogPixel es" + str (oPrn: nLogPixelX ()))
Endif


Lo comprob茅 el c贸digo anterior con diferentes tipos de impresoras (inyecci贸n de tinta, l谩ser y matriz de puntos) y yo estoy recibiendo los resultados correctos para determinar si la impresora seleccionada es Dot Matrix o InkJet / l谩ser, aunque existen diferencias en los p铆xeles de una matriz de puntos a otra impresora de matriz de puntos

Ser铆a bueno si se puede incorporar en la clase

Recuerdos

Anser