Printer imprime algunos caracteres mas pequeños

13/07/2003 - 03:38 por Claudio H. | Informe spam
hola

tengo una inquetud haber si me dan una mano..
¿ Printer imprime algunos caracteres mas pequeños?

por ejemplo la impresion me sale:

1- Reporte de accionistas
2- -

la segunda linea sale mas pequeña a que se puede deber esto
por que atravez de programacion genero la misma cantidad
de caracteres que la linea dos pero igual me sale mas
pequeña ( utilizo el string(len("Reporte de
accionistas"),"_")

desde ya muchas gracias..
 

Leer las respuestas

#1 Leonardo Azpurua
13/07/2003 - 03:58 | Informe spam
"Claudio H." escribió en el
mensaje news:04ed01c348df$78aa4f00$
hola

tengo una inquetud haber si me dan una mano..
¿ Printer imprime algunos caracteres mas pequeños?

por ejemplo la impresion me sale:

1- Reporte de accionistas
2- -

la segunda linea sale mas pequeña a que se puede deber esto
por que atravez de programacion genero la misma cantidad
de caracteres que la linea dos pero igual me sale mas
pequeña ( utilizo el string(len("Reporte de
accionistas"),"_")

desde ya muchas gracias..


Hola, Claudio:

Eso ocurre porque estás utilizando una fuente de espaciado proporcional.

Una fuente de espaciado proporcional es una en el cual el ancho asignado a
cada caracter es proporcional al ancho de su "glifo" (el "dibujo" con el
cual se representa). Una "M", por ejemplo, ocupa más espacio horizontal que
una "i".

Hay dos soluciones.

La más sencilla es asignar al objeto printer una fuente no proporcional
(Courier, Courier New o Lucida Console son las más comunes).

La otra, un poco más compleja, utiliza la propiedad "TextWidth", expuesta
por el objeto Printer y por otros compatibles con GDI (Form, Screen,
PictureBox y no se si otras...), que te devuelve el ancho (en unidades
determinadas por la propiedad ScaleMode -generalmente TWIPS) que requerirá
la presentación de un texto en ese dispositivo dada la configuración actual
de su fuente.

Como pista, porque es sábado en la noche y hay que dormir, puedes intentar:

Printer.Print "Reporte de Accionistas"
Printer.Print String(Printer.TextWidth("Reporte de Accionistas") /
Printer.TextWidth("-"), "-")

Lo más probable es que la longitud de "Reporte de Accionistas" no sea un
múltiplo entero exacto de la longitud de "-", e manera que puede que tengas
que ajustar, generalmente agregando un "-".

Salud!

Leonardo
MS MVP

Preguntas similares