Page 1 of 1

Funciones para imprimir a la manera de consola con la tPrint

PostPosted: Fri Jun 27, 2008 1:27 pm
by jose_murugosa
Muchas veces he tenido que sufrir al pasar codigo de impresion de viejos programas de clipper en modo consola a una impresión gráfica con la clase tprint.

Para ahorrar tiempo, he creado 5 funciones que permiten imprimir parecido a como lo hacìamos con clipper en una impresora de impacto, pero enviando la impresión grafica por medio de la clase tPrint de FWH.

Estas clases permiten dibujar lineas, cuadros y escribir texto de forma sencilla (o al menos a mi me lo parece).

Lo ofrezco a los amigos del foro como una contribución, si alguien mejora estas funciones, agradeceré me las envíe con sus comentarios.

Ojalá sean de ayuda, ya que tanto he recibido de este foro.
:D
http://www.box.net/shared/sk1u63g0s4

PostPosted: Fri Jun 27, 2008 1:39 pm
by Rossine
Olá Jose,

Ao clicar no link, aparece a mensagem: "No shared files/folders found."

Saludos,

Rossine.

PostPosted: Fri Jun 27, 2008 1:40 pm
by jose_murugosa
Perdón, utilicen este link:

http://www.box.net/shared/6luk40268g

en implib.prg encontrarán las funciones detalladas y explicadas.

testimp es un ejemplo que muestra como usarla

PostPosted: Fri Jun 27, 2008 5:22 pm
by karinha
jose_murugosa wrote:Perdón, utilicen este link:

http://www.box.net/shared/6luk40268g

en implib.prg encontrarán las funciones detalladas y explicadas.

testimp es un ejemplo que muestra como usarla


Buenas José,

És posible IMPRIMIR EN USB??

Gracias.

Saludos.

PostPosted: Fri Jun 27, 2008 5:24 pm
by jose_murugosa
karinha wrote:
Buenas José,

És posible IMPRIMIR EN USB??

Gracias.

Saludos.


Puedes imprimir en cualquier impresora por usb, lpt y red, ya que usa el buffer de impresión de windows, lo bueno es que es muy sencillo pasar tu codigo de consola a impresión grafica, ya que por ejemplo:

@10,10 say "hola"
equivale a:
PrnSay(10,10,"Hola")
la clase ve la definición la impresora y ajusta filas y columnas para lograr una ubicación similar.
.

PostPosted: Fri Jun 27, 2008 5:38 pm
by MGA
Muito obrigado José!


:D

PostPosted: Fri Jun 27, 2008 9:22 pm
by sysctrl2
Holas Jose,

ya probe tu aportacion esta bueno,,

como controlas si el formato es a media carta?


papel continuo, de media carta,,

o ahi seguimos usando tdosprn ?



saludos..

PostPosted: Fri Jun 27, 2008 9:40 pm
by jose_murugosa
sysctrl2 wrote:Holas Jose,

ya probe tu aportacion esta bueno,,
como controlas si el formato es a media carta?
papel continuo, de media carta,,
o ahi seguimos usando tdosprn ?

saludos..


Simple, lo haces con la función IniImp(nAncho, nLargo, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias), le das el largo en cmts de la pagina, sea media pagina, cuarto de pagina
o quinto de pagina o la fracción que sea y le das la mitad, cuarta parte o quinta parte respectivamente de las filas que usas para la pagina entera y listo.

Puedes usar papel de cualquier largo.

Ejemplo si usas una hoja carta, usas 60 filas, 80 columnas y tamaño de pagina: 21.59 x 27.94
Para A4 yo uso 72 filas y 80 columnas y la medida es 21 x 29.7cmts

para media carta serà 21.59 x 13.97 y 30 filas (la mitad)

IniImp(21.59, 13.97, 30, 80, "Listado mio", .t., .t., .f., 1)

combinando tamaños de hoja y filas cambias la distancia de interlineado, combinando tamaños de hoja y columnas cambias a condensado (si es más de 80 y no es apaisado cambia la fuente automaticamente a una mas pequeña, aunque puedes indicar el tamaño de fuente si lo deseas, ve la función PrnSay)

Recuerda que el objetivo de estas funciones es facilmente modificar un listado para matriz de puntos en lpt1 a un listado a cualquier tipo de impresora en impresion grafica.

Si lo que deseas es imprimir en una impresora de matriz de puntos en lpt1, tdosprn será mas rápido, ya que evitas imprimir de forma gráfica.

Pero con esta clase esos mismos listados los puedes imprimir en una laser, en chorro de tinta, en impresoras conectadas por usb, lpt1 o de la red.

Espero ayude.

PostPosted: Fri Jun 27, 2008 11:43 pm
by sysctrl2
Jose, si me queda claro tu comentario,,

tengo un tiraje de papel continuo,, qu en tdosprn

hago esto.

oPrn:command( "27","67", "33" ) // MEDIA CARTA

esto quiere decir que el EJECT lo hace cada media carta,,

con tprinter, nunca he podido hacer esto,,

en formatos continos,, sigo usando como en msdos con tdosprn,

ahora que veo tus funciones,, tengo esperanzas de que tambien se

pueda hacer esto con tprinter,,

gracias por tu tiempo,,

Cesar Cortes..

PostPosted: Mon Jun 30, 2008 10:48 am
by jose_murugosa
sysctrl2 wrote:Jose, si me queda claro tu comentario,,

ahora que veo tus funciones,, tengo esperanzas de que tambien se

pueda hacer esto con tprinter,,

gracias por tu tiempo,,

Cesar Cortes..


Cesar tenme al tanto de los resultados, una de las ventajas de compartir código es lo que te enriquece el feedback, gracias por probar mis funciones.