Impresion en puerto serial COM

02/06/2008 - 15:55 por alfonso_C# | Informe spam
Hola amigos buscando en la web encontre un codigo muy simple pero
efectivo para mandar datos a una impresora por el puerto serial, el
codigo es el que sigue :

using System.IO.Ports;

class prueba_impresion_serial
{
static void Main (string[] args)
{

// Instantiate the communications
// port with some basic settings

SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8,
StopBits.One);

// Open the port for communications

port.Open();

// Write a string

port.Write("Hello World");

// Write a set of bytes

port.Write(new byte[] { 0x0A, 0xE2, 0xFF }, 0, 3);

// Close the port

port.Close();

}
}

Funciona muy bien pero me gustaria saber porque no imprime cuando
quito la linea siguiente :

port.Write(new byte[] { 0x0A, 0xE2, 0xFF }, 0, 3);

y coloca una especie de caracter grafico. Hay alguna manera de que
imprima sin esto ? que significa ? Muchas gracias (^_^)
 

Leer las respuestas

#1 RFOG
02/06/2008 - 16:19 | Informe spam
Si sólo te interesa imprimir texto sin más, olvídate de enviar códigos
raros, pero si quieres controlar cosas como el tamaño de la letra, negrita,
cursiva, etc, en general ese tipo de impresoras soportan algún tipo de
lenguaje de códigos, es decir, reaccionan ante ciertos valores binarios
cambiando el tamaño de letra, etc. En "lenguaje" más común es el de "códigos
de escape" (http://es.wikipedia.org/wiki/C%C3%B...scape_ANSI) aunque no
necesariamente ha de ser éste.

El que no imprima hasta recibir los códigos binarios de abajo creo que no
tiene nada que ver: simplemente hasta que la impresora no tiene el buffer
lleno no lo vuelca al papel, o quizás sea el 0x0a el que fuerce la
escritura. 0x0a es "salto de línea" (http://es.wikipedia.org/wiki/ASCII),
0xe2 y 0xff no tienen mucho sentido para mi, quizás sea un comando de
"vaciar e imprimir". Todo esto tiene que ver con cada modelo de impresora, y
en general el fabricante del modelo en cuestión ha de tener por algún lado
un manual que indique todo eso, incluso si existe un driver para Windows,
que en general suele ser así.


"alfonso_C#" wrote in message
news:
Hola amigos buscando en la web encontre un codigo muy simple pero
efectivo para mandar datos a una impresora por el puerto serial, el
codigo es el que sigue :

using System.IO.Ports;

class prueba_impresion_serial
{
static void Main (string[] args)
{

// Instantiate the communications
// port with some basic settings

SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8,
StopBits.One);

// Open the port for communications

port.Open();

// Write a string

port.Write("Hello World");

// Write a set of bytes

port.Write(new byte[] { 0x0A, 0xE2, 0xFF }, 0, 3);

// Close the port

port.Close();

}
}

Funciona muy bien pero me gustaria saber porque no imprime cuando
quito la linea siguiente :

port.Write(new byte[] { 0x0A, 0xE2, 0xFF }, 0, 3);

y coloca una especie de caracter grafico. Hay alguna manera de que
imprima sin esto ? que significa ? Muchas gracias (^_^)



Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Sé amable con tus palabras y útil con tus obras.
Pitágoras.

Preguntas similares