Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/12/2007, 01:46
joormar
 
Fecha de Ingreso: octubre-2003
Mensajes: 15
Antigüedad: 21 años, 5 meses
Puntos: 0
Re: imprimir por LPT1

Gracias por la respuesta.

Me habían dicho que no era necesario configurar la impresora y por eso mis problemas. Una vez configurada ya he podido imprimir.

Al principio he utilizado una clase que encontré en http://www.foromsn.com/Version_Imprimible.php?Id=178209 pero me amontonaba las líneas y la he descartado. Si alguien sabe la razón....
Así que decidí hacerlo de otra forma en la que imprimo las líneas correctamente. No queda tan bonito pero me sobra.

Ahora, después de imprimir el ticket, tengo que abrir la caja física. El comando a utilizar es carácter escape seguido de (char)27p04. No estoy seguro de si es p04 o p0,4 pero he probado de las 2 formas.
También he probado poniendo el comando completo utilizando la sintaxis (char)nº y en ningún caso abre la caja. Esa sentencia la he puesto desde la consola de comandos ms-dos (directamente y a través de un fichero txt) y el cajón se abre pero desde el código de visual no.

Si alguien puede ayudarme estaría muy agradecido.

Aquí pongo el código utilizado:


private void button1_Click(object sender, EventArgs e)
{

string textoAImprimir = "1 Texto a imprimir\r\n";
textoAImprimir += "2 Texto a imprimir\r\n";

textoAImprimir += (char)27 + "p0,4"; //comandos para abrir el cajón físico

PrintAString(textoAImprimir);
}

#region "Impresion"
private Font printFont;
private string printString;

public void PrintAString(string data)
{
PrintDocument pd = new PrintDocument();
printFont = new Font("Courier", 10);

printString = data;
pd.PrintPage += new PrintPageEventHandler(PrintPage);
pd.PrinterSettings.PrinterName = "ticket";
pd.Print();
}

private void PrintPage(object sender, PrintPageEventArgs e)
{
float xp = 10;
float yp = 20;
e.Graphics.DrawString(printString, printFont, Brushes.Black, xp, yp, new StringFormat());
}
#endregion



Un saludo a tod@s.