Retroceder   Foros del Web > Programación para sitios web > .NET > win forms

Respuesta
 
Herramientas Desplegado
Antiguo 20-dic-2007, 04:54   #1 (permalink)
joormar está en el buen camino
 
Fecha de Ingreso: noviembre-2002
Mensajes: 16
imprimir por LPT1

Hola a todos.

Estoy realizando una aplicación en c# para imprimir tickects de caja y necesito saber como puedo imprimir por LPT1.

He visto que en visual basic hay una sentencia "shell" para realizar esta operación pero no sé como se hace en c#.

he probado de 2 formas:
- intentando imprimir directamente en lpt1
- creando un fichero e intentándolo imprimir después.

Gracias de antemano
joormar está desconectado   Responder Citando
Antiguo 20-dic-2007, 14:58   #2 (permalink)
cesar_nava está en el buen camino
 
Fecha de Ingreso: enero-2004
Ubicación: Distrito Federal
Mensajes: 357
Re: imprimir por LPT1

Si tienes la impresora correctamente detectada y configurada en tu PC, puedes emplear la clase PrintDocument.

La funcion principal de la sentencia Shell de Visual Basic, no es imprimir, sino ejecutar otros procesos o programas. Su equivalente en .Net (ya sea Visual Basic .Net o C#) es la clase Process.
cesar_nava está desconectado   Responder Citando
Antiguo 21-dic-2007, 00:46   #3 (permalink)
joormar está en el buen camino
 
Fecha de Ingreso: noviembre-2002
Mensajes: 16
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.
joormar está desconectado   Responder Citando
Antiguo 22-dic-2007, 11:15   #4 (permalink)
Foskiton ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2004
Mensajes: 211
Re: imprimir por LPT1

Hola joormar
Me da que tienes que enviar al puerto el comando space ( (char)27p04 ) no imprimirlo, al menos eso creo, y la forma correcta de hacerlo seria utilizando las clases que se encuentran en el namespace System.Net (bueno te lo he dicho de memoria, creo q se llama asi)
Donde encontraras clases de puertos, redes etc.

Saludos.
Foskiton está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:01.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93