man yo tuve el mismo problema con c# y despues de muchos intentos consegui imprimir sin la intervencion de drivers ni nada, solo con csharp y dos
aca va
primero debes crear un archivo bat q envie el comando de impresion:
copy imprimir.txt lpt1
copy = comando para copiar (en este caso imprimir) un archivo
imprimir.txt = el archivo q vas a imprimir
lpt1 = el puerto en donde enviar el archivo a imprimir
esto puedes copiar en un archivo de texto y guardar con la extencion .bat
luego creas un archivo de texto en tu directorio bin/debug con el nombre imprimir.txt pues es donde vas a enviar lo q quieres imprimir....
ahora vamos a ver lo q debes hacer en sharp
primero guardas en una string lo q quieres q t aparezca en la impresion
aca tienes un ejemplo de mi ticket de venta
string texto1 = " * * * "+this.txtnomcomercio.text+" * * *" + "";
string texto2 = "
---------------------------------------";
string texto3 = "
"+this.txtciudad.text+" - "+this.txttelefono.text+"";
string texto4 = "
Fact Num "+this.txtnumventa.Text+" - "+this.txtfecha.Text+" - "+Convert.ToDateTime(DateTime.Now).ToString("hh:mm")+"hs";
string texto5 = "
"+this.cmbcliente.Text+" - "+this.tipoventa+"";
string texto6 = "
Producto - Cantidad - Precio - Subtotal";
string texto7 = "";
int i=this.dataGridView1.Rows.Count;
for (int j=0;j<i;j++)
{
texto7 =texto7 + "
"+ Convert.ToString(this.dataGridView1.Rows[j].Cells[2].Value).Trim().ToString()+"
"+" "+this.dataGridView1.Rows[j].Cells[3].Value+" "+this.dataGridView1.Rows[j].Cells[4].Value+" "+this.dataGridView1.Rows[j].Cells[5].Value;
}
string texto8 = "
Total G$: "+this.grupototales.Rows[0].Cells[0].Value+"" + " Total R$: "+this.grupototales.Rows[1].Cells[0].Value;
string texto9 = "
" + " ..............................";
string texto10 = "
"+this.cmbcliente.Text+"" + "
";
string texto11 = "
* * * Agradecemos la Preferencia * * *"+ "
" + "
";
texto_a_imprimir = texto1+texto2+texto3+texto4+texto5+texto2+texto6 +texto2+ texto7+ texto2+texto2+texto8+texto2+texto9+texto10+texto11;
como has visto he guardado todo en la variable tipo string texto_a_imprimir, ahora enviamos este para impresion, así...
//acá sobreescribimos el archivo imprimir.txt por el string en el q esta lo q qremos imprimir
System.IO.File.WriteAllText("imprimir.txt",texto_a_imprimir);
// y aca ejecutamos el comando para imprimir el archivo
System.Diagnostics.Process.Start("imprimir.bat");
listo
espero te funcione
saludos desd paraguay