• Domingo 22 de Diciembre de 2024, 20:42

Autor Tema:  Controlar El Grosor De Las Líneas Al Imprimir  (Leído 2676 veces)

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Controlar El Grosor De Las Líneas Al Imprimir
« en: Sábado 15 de Enero de 2005, 09:36 »
0
Hola a todos, quisiera saber si es posible controlar el grosor de las líneas al imprimir por papel las mismas.
Ahora lo que hago es usar la propiedad DrawWidth del objeto donde voy a dibujar líneas.
El valor 1 es un poco fino y el 2 es grueso, necesito algo entre medias, pero el valor 1.5 no vale, lo toma siempre como 2.
xej:
    picure1.DrawWhidth=1
    picture1.line(0,0)-(20,0)

¿Hay alguna otra manera de dibujar líneas?

Gracias por adelantado.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Controlar El Grosor De Las Líneas Al Imprimir
« Respuesta #1 en: Martes 18 de Enero de 2005, 15:06 »
0
Hola ebolo.

Una línea dibujada en un control con DrawWidth=1 tendrá irremediablemente el ancho de 1 pixel. Y como quien dice por definición no hay forma de obtener una línea más fina que eso... a no ser claró está, que uses una resolución mayor para tu pantalla, caso en el que como es lógico la línea se verá más fina.

Como sabes, se puede uno imaginar el monitor como una matriz de (pixels_ancho * pixels_alto) puntos, según resolución. El Alto o ancho mínimo de una línea siempre será un punto de esa matriz (ancho DrawWidth=1).

Tampoco puedes 'iluminar la mitad de un punto de la pantalla', por lo que eso de conseguir una línea de ancho 1'5 pixel... chungo. en en cuenta que el valor de DrawWidth indicará el número de pixels de ancho de una línea.


Chao.

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Controlar El Grosor De Las Líneas Al Imprimir
« Respuesta #2 en: Martes 18 de Enero de 2005, 20:58 »
0
Gracias de nuevo Brroz.
Esoty un poco desesperado con este tema. El activex me funciona bien, pero el problema que tengo es que funciona bien en pantalla de 17'.' de 15'' NO. Esto me está volviendo loco.
El activex lo he hecho para poder usarlos en informes de access. Ya he conseguido que el access me lo reconozca (tuve que empezar un activex nuevo porque el que tenía hecho no había manera de que lo reconociera); lo que me está ocurriendo es eso, cuando el pc tiene una pantalla de 17'' los EAN13 en los informes salen de cine; cuando el pc tiene pantalla de 15'' las barras me las junta mucho y ya no lo lee el lector.

La verdad que el tema me ha dejado de piedra, porque no sé por donde seguir. Voy a intentar primero determinar la resolución de pantalla, pero claro luego siempre dibujo líneas con pixels, con lo que estoy en la misma. No Sé.....
 :ouch:  :ouch:


Si se te ocurre algo, te mando  3 - 4 ... cevezas que quieras.
Saludos.

PD.: si soy capaz de hacer funcionar el OCX para cualquier caso prometo dejarlo para todos con el código para quien lo quiera.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Controlar El Grosor De Las Líneas Al Imprimir
« Respuesta #3 en: Miércoles 19 de Enero de 2005, 15:19 »
0
Hola ebolo.

Realmente, creo que no debería afectar la resolución o el tamaño de la pantalla a la legibilidad del código... pienso que el ancho de un espacio en blanco o de una línea seguiría siendo proporcional. En todo caso, cuando detectes una resolución inadecuada podrías redimensionar el control y escalar el ancho de la línea usando 2 pixels en vez de 1.

Chao.

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Controlar El Grosor De Las Líneas Al Imprimir
« Respuesta #4 en: Miércoles 19 de Enero de 2005, 22:39 »
0
Hola de nuevo y gracias una vez más.
Haciendo comprobaciones en distintas pantallas, ya he podido comprobar las diferencias que hay entre 17'' y 15'' de pantalla.
    - En una de 15'', los twips / pixel= 15.
    - En una de 17 '' los twips / pixel= 12.
Por lo menos en las que yo he probado.

Una serie de coincidencias, casualidades y no comprobar que cada tamaño de pantalla tiene unos twips por pixel(T/P) distintos (siempre pensé que eran 15 T/P para todas las pantallas) hizo que funcionará el código para pantalla de 17'' y no de 15''.

Ahora ya lo he hecho funcionar tanto para 17'' como 15'', pero por separado, me falta organizar el código para que funcione siempre.

Saludos.

PD.: si alguno quiere comprobar los T/P sólo tiene que poner xej en el form_Load:
MsgBox "Twips / Pixel(X x Y) : "  & Screen.TwipsperPixelX & " x " & Screen.TwipsperPixelY

Lo dicho cuando lo tenga acabado, adjuntaré el archivo.
 :hola: