none
imprimir en impresora matricial RRS feed

  • Pregunta

  • Una consulta,

    Estoy codificando en C#. La impresión en una matricial la realizo por FileStream a un archivo y de allí con un TYPE a LPT? direcciono a la impresora.

    El problema que estoy teniendo es con los caracteres especiales como la ñ, Ñ y las letras con acentos.Lo que me imprime es otro caracter ascci en lugar de esos.

    La impresora es una Epson LX.  Seguramente el tema pasa por el código de caracteres que utiliza la impresora. Qué debo hacer? Alguien me puede ayudar en eso?  Muchas gracias

    jueves, 8 de abril de 2010 22:26

Respuestas

  • Casi seguro que es por el juego de caracteres. Tendrías que pasarle al FileStream los bytes codificados con el juego de caracteres correcto. La forma más sencila de hacerlo consiste en asignar el Encoding a un StreamWriter, y usar ese StreamWriter para escribir el texto sobre el FileStream. Ya no me acuerdo de qué juego usaban las matriciales, pero suponiendo que sea el 437 (el mismo de MS-DOS), se lo puedes pasar asi:

    FileStream fs = new FileStream(....);
    StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding(437));
    sw.WriteLine("Ejemplo: Línea con eñe");
    sw.Close();
    • Marcado como respuesta Arielr martes, 13 de abril de 2010 15:52
    lunes, 12 de abril de 2010 21:05
    Moderador

Todas las respuestas

  • Casi seguro que es por el juego de caracteres. Tendrías que pasarle al FileStream los bytes codificados con el juego de caracteres correcto. La forma más sencila de hacerlo consiste en asignar el Encoding a un StreamWriter, y usar ese StreamWriter para escribir el texto sobre el FileStream. Ya no me acuerdo de qué juego usaban las matriciales, pero suponiendo que sea el 437 (el mismo de MS-DOS), se lo puedes pasar asi:

    FileStream fs = new FileStream(....);
    StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding(437));
    sw.WriteLine("Ejemplo: Línea con eñe");
    sw.Close();
    • Marcado como respuesta Arielr martes, 13 de abril de 2010 15:52
    lunes, 12 de abril de 2010 21:05
    Moderador
  • Gracias ALBERTO!!, esa es la solución. El código a utilizar es el 850.

    Ha sido de mucha ayuda..  Gracias de nuevo

     

    martes, 13 de abril de 2010 15:54