Arto de la Impresión

29/01/2006 - 17:54 por oskar | Informe spam
Hola a todos.
No entiendo como este maravilloso lenguaje (y no es broma) no tiene una
classe para imprimir sin problemas en todas la impresoras.
Tengo una impresora de etiquetas Zebra LP 2844 en la que quiero
imprimir 4 dotos basicos:
Nombre Arituclo
Descripcion

Fechas

Codigo de barras.

Pues con la classe PrintDocument no puedo imprimir porque parece que
los drivers no aceptan impresion grafica (que es lo que hace esta
classe si no estoy equivocado).
Tengo que utilizar impresion directa usando codigos EPL2 que no me dan
mucha flexibilidad, ni negritas ni centrado de linea, ni diferentes
fuentes.
Pero lo curioso es que WORD imprime a la maravilla con este drivers,
fuentes, negritas ... todo.

Como puedo imprimir tal como word en esta impresora ?
Esta conectada a USB
Mi codigo (Que no imprime bien )

PrintDocument pd = new PrintDocument();

if (txtImpresora!="") pd.PrinterSettings.PrinterName=txtImpresora;

pd.PrintPage += new PrintPageEventHandler(this.pd_ImprimirEtiqueta);
pd.Print();


private void pd_ImprimirEtiqueta(object sender, PrintPageEventArgs ev)
{
float linesPerPage = 0;
float yPos = 0;
int count = 0;
float leftMargin = 58;
float topMargin = 42;
string line;

...
printFont = new Font("Arial Black", 8,FontStyle.Bold);
linesPerPage = ev.MarginBounds.Height /
printFont.GetHeight(ev.Graphics);
line="HOLA QUE TAL";
yPos = topMargin;
ev.Graphics.DrawString(line, printFont, Brushes.Black,
leftMargin, yPos, new StringFormat());
ev.HasMorePages = false;
.
}
 

Leer las respuestas

#1 Octavio Hernandez
29/01/2006 - 18:10 | Informe spam
Oskar,

Hace unos meses tuve que desarrollar una clase de impresión para una
impresora de esas.
Hay que hacer impresión directa (raw) mediante llamadas PInvoke a las
funciones de la API de Windows. Te puedes guiar por este artículo:

http://www.thecodeproject.com/cshar...inting.asp

Slds - Octavio


"oskar" escribió en el mensaje
news:
Hola a todos.
No entiendo como este maravilloso lenguaje (y no es broma) no tiene una
classe para imprimir sin problemas en todas la impresoras.
Tengo una impresora de etiquetas Zebra LP 2844 en la que quiero
imprimir 4 dotos basicos:
Nombre Arituclo
Descripcion

Fechas

Codigo de barras.

Pues con la classe PrintDocument no puedo imprimir porque parece que
los drivers no aceptan impresion grafica (que es lo que hace esta
classe si no estoy equivocado).
Tengo que utilizar impresion directa usando codigos EPL2 que no me dan
mucha flexibilidad, ni negritas ni centrado de linea, ni diferentes
fuentes.
Pero lo curioso es que WORD imprime a la maravilla con este drivers,
fuentes, negritas ... todo.

Como puedo imprimir tal como word en esta impresora ?
Esta conectada a USB
Mi codigo (Que no imprime bien )

PrintDocument pd = new PrintDocument();

if (txtImpresora!="") pd.PrinterSettings.PrinterName=txtImpresora;

pd.PrintPage += new PrintPageEventHandler(this.pd_ImprimirEtiqueta);
pd.Print();


private void pd_ImprimirEtiqueta(object sender, PrintPageEventArgs ev)
{
float linesPerPage = 0;
float yPos = 0;
int count = 0;
float leftMargin = 58;
float topMargin = 42;
string line;

...
printFont = new Font("Arial Black", 8,FontStyle.Bold);
linesPerPage = ev.MarginBounds.Height /
printFont.GetHeight(ev.Graphics);
line="HOLA QUE TAL";
yPos = topMargin;
ev.Graphics.DrawString(line, printFont, Brushes.Black,
leftMargin, yPos, new StringFormat());
ev.HasMorePages = false;
.
}

Preguntas similares