none
Problema al generar impresión RRS feed

  • Pregunta

  • Hola, buen día

    Hice un pequeño programa, donde por medio de un textbox generó un código de barras para posteriormente imprimirlo en una mini printer de papel térmico. Lo he instalado en varias computadoras y la impresión sale bien. Pero en algunas otras el código de barras sale pixelado, he intentado algunas cosas como cambiar el tipo de fuente del código de barras pero no ha funcionado, en todas las fuentes sale igual.

    Este es mi programa:

    Y este el código donde se imprime:

    Gracias de antemano


    JK

    martes, 16 de febrero de 2021 14:54

Respuestas

  • Veo que estás usando MemoryImage para tomar un bitmap desde el panel y enviarlo a la impresora. Mi sospecha es que dependiendo de la resolución de la pantalla estás generando MemoryImage con diferente resolución, y por eso al enviarlo a impresora unas veces queda más pixelado que otras.

    Sería bueno generar un Bitmap (vacío) con la misma resolución que la impresora, y dibujar sobre ese bitmap usando DrawText y el mismo font del código de barras. Este bitmap no tiene por qué mostrarse en pantalla en ningún momento, simplemente lo usarías en el DrawImage de la impresora. Así la resolución coincidiría y no se vería pixelado. De esta manera, quitamos la dependencia de la resolución de pantalla.

    No te digo que hagas el DrawText directamente sobre el e.Graphics de la impresora porque posiblemente la impresora no disponga del mismo font para código de barras. De ahí la sugerencia de pasar por un bitmap intermedio que tenga la misma resolución.

    • Marcado como respuesta JuanK1916 jueves, 18 de febrero de 2021 18:23
    martes, 16 de febrero de 2021 18:05
    Moderador

Todas las respuestas

  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    martes, 16 de febrero de 2021 17:50
    Moderador
  • Veo que estás usando MemoryImage para tomar un bitmap desde el panel y enviarlo a la impresora. Mi sospecha es que dependiendo de la resolución de la pantalla estás generando MemoryImage con diferente resolución, y por eso al enviarlo a impresora unas veces queda más pixelado que otras.

    Sería bueno generar un Bitmap (vacío) con la misma resolución que la impresora, y dibujar sobre ese bitmap usando DrawText y el mismo font del código de barras. Este bitmap no tiene por qué mostrarse en pantalla en ningún momento, simplemente lo usarías en el DrawImage de la impresora. Así la resolución coincidiría y no se vería pixelado. De esta manera, quitamos la dependencia de la resolución de pantalla.

    No te digo que hagas el DrawText directamente sobre el e.Graphics de la impresora porque posiblemente la impresora no disponga del mismo font para código de barras. De ahí la sugerencia de pasar por un bitmap intermedio que tenga la misma resolución.

    • Marcado como respuesta JuanK1916 jueves, 18 de febrero de 2021 18:23
    martes, 16 de febrero de 2021 18:05
    Moderador