Problema imprimiendo con una Epson LX 810 (matriz de punto)

02/11/2007 - 17:08 por Fernando Briano | Informe spam
Buenas tardes,
Tengo un programa hecho en C#, donde debo imprimir unos recibos en una
Epson LX-810. Las hojas ya vienen impresas con el formato de los recibos
y yo debo imprimir los datos sobre ella.
Estoy usando un PrintDocument, al que le asigno un tamaño de papel

System.Drawing.Printing.PaperSize papel = new
System.Drawing.Printing.PaperSize("documento", 744, 266);
PrintDocument.DefaultPageSettings.PaperSize = papel;
PrintDocument.DefaultPageSettings.Margins = new
System.Drawing.Printing.Margins(0,0,0,0);
PrintDocument.OriginAtMargins = true;

Los datos a imprimir los mando a la impresora con:
e.Graphics.DrawString

El problema que tengo es que a la primera impresión, le deja un margen
de aproximadamente 1cm, pero a las siguientes no, por lo que me resulta
imposible mandar a imprimir varias veces, ya que se desfasa totalmente
la hoja con la impresión. En otras palabras, la coordenada 0,0 desde el
programa se muestra en la hoja en 1,1 aproximadamente, pero solo en la
primera impresión.
Debería eliminar ese margen, ya que se van a seguir imprimiendo hoja
tras hoja, y debería siempre poder imprimir continuamente sin cambiar el
papel ni desfasarse. No he podido encontrar solución aún.
Desde ya agradezco cualquier ayuda.

Fernando Briano

Preguntas similare

Leer las respuestas

#1 RFOG
02/11/2007 - 18:04 | Informe spam
Un palo de ciego: ¿Y si mandas a imprimir la primera con coordenadas
negativas, es decir, en lugar de componer la hoja partiendo de 0,0 no lo
haces partiendo de -1,-1? (Al menos en una pantalla se puede hacer -las
coordenadas negativas se corresponden con un monitor situada a la izquierda
o arriba del principal).

De todos modos, supongo que habrás mirado que en las opciones del driver no
haya algún valor de "margen de inicio" o algo así.

¿Es una matricial? Si es así en las configuraciones internas -generalmente
se accede a ellas encendiendo la impresora apretando algún botón- seguro que
tiene algo de eso. Mi Fujitsu que EPD lo tenía (aunque cuando activaba que
no lo hicier enredaba el papel porque no quedaba sujeto por la ménsula
superior y el cabezal lo arrastraba).

Microsoft Visual C++ MVP
==Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
Dios existe; pero no tiene ninguna prisa de hacerlo saber.

"Fernando Briano" wrote in message
news:
Buenas tardes,
Tengo un programa hecho en C#, donde debo imprimir unos recibos en una
Epson LX-810. Las hojas ya vienen impresas con el formato de los recibos y
yo debo imprimir los datos sobre ella.
Estoy usando un PrintDocument, al que le asigno un tamaño de papel

System.Drawing.Printing.PaperSize papel = new
System.Drawing.Printing.PaperSize("documento", 744, 266);
PrintDocument.DefaultPageSettings.PaperSize = papel;
PrintDocument.DefaultPageSettings.Margins = new
System.Drawing.Printing.Margins(0,0,0,0);
PrintDocument.OriginAtMargins = true;

Los datos a imprimir los mando a la impresora con:
e.Graphics.DrawString

El problema que tengo es que a la primera impresión, le deja un margen de
aproximadamente 1cm, pero a las siguientes no, por lo que me resulta
imposible mandar a imprimir varias veces, ya que se desfasa totalmente la
hoja con la impresión. En otras palabras, la coordenada 0,0 desde el
programa se muestra en la hoja en 1,1 aproximadamente, pero solo en la
primera impresión.
Debería eliminar ese margen, ya que se van a seguir imprimiendo hoja tras
hoja, y debería siempre poder imprimir continuamente sin cambiar el papel
ni desfasarse. No he podido encontrar solución aún.
Desde ya agradezco cualquier ayuda.

Fernando Briano
Respuesta Responder a este mensaje
#2 Fernando Briano
02/11/2007 - 18:40 | Informe spam
RFOG:
Gracias por tu aporte. Lo de las coordenadas en negativo lo probé, pero
causa una excepción, que el valor de las coordenadas debe ser mayor o
igual a cero. De todas formas, suponiendo que ésto funcionara, no
arreglaría el problema, ya que para el primer caso imprimiría bien, pero
los otros 3 que entran en la hoja quedarían desfasados, y debe seguir
imprimiendo en siguientes hojas. Las hojas mismas están recortadas en 4
cada una, o sea que es como si contara con hojas de ese tamaño que le
estoy mandando imprimir, pero la primera hoja tiene ese problema con
márgenes.
Es una punto de matriz Epson LX 810, me estoy bajando los manuales y
demás información desde la página de Epson para ver si dice algo de lo
que mencionas sobre el margen de inicio. En la ventana de opciones de
impresión no logré cambiar los márgenes, tampoco desde la configuración
de la impresora.
Gracias de todas formas.
Saludos

Fernando


RFOG escribió:
Un palo de ciego: ¿Y si mandas a imprimir la primera con coordenadas
negativas, es decir, en lugar de componer la hoja partiendo de 0,0 no lo
haces partiendo de -1,-1? (Al menos en una pantalla se puede hacer -las
coordenadas negativas se corresponden con un monitor situada a la izquierda
o arriba del principal).

De todos modos, supongo que habrás mirado que en las opciones del driver no
haya algún valor de "margen de inicio" o algo así.

¿Es una matricial? Si es así en las configuraciones internas -generalmente
se accede a ellas encendiendo la impresora apretando algún botón- seguro que
tiene algo de eso. Mi Fujitsu que EPD lo tenía (aunque cuando activaba que
no lo hicier enredaba el papel porque no quedaba sujeto por la ménsula
superior y el cabezal lo arrastraba).

Respuesta Responder a este mensaje
#3 principiante
03/11/2007 - 02:20 | Informe spam
Prueba a ver con otro driver por si acaso. Creo que el de la LX300 es
compatible.

Jose TH


"Fernando Briano" escribió en el mensaje
news:
RFOG:
Gracias por tu aporte. Lo de las coordenadas en negativo lo probé, pero
causa una excepción, que el valor de las coordenadas debe ser mayor o
igual a cero. De todas formas, suponiendo que ésto funcionara, no
arreglaría el problema, ya que para el primer caso imprimiría bien, pero
los otros 3 que entran en la hoja quedarían desfasados, y debe seguir
imprimiendo en siguientes hojas. Las hojas mismas están recortadas en 4
cada una, o sea que es como si contara con hojas de ese tamaño que le
estoy mandando imprimir, pero la primera hoja tiene ese problema con
márgenes.
Es una punto de matriz Epson LX 810, me estoy bajando los manuales y demás
información desde la página de Epson para ver si dice algo de lo que
mencionas sobre el margen de inicio. En la ventana de opciones de
impresión no logré cambiar los márgenes, tampoco desde la configuración de
la impresora.
Gracias de todas formas.
Saludos

Fernando


RFOG escribió:
Un palo de ciego: ¿Y si mandas a imprimir la primera con coordenadas
negativas, es decir, en lugar de componer la hoja partiendo de 0,0 no lo
haces partiendo de -1,-1? (Al menos en una pantalla se puede hacer -las
coordenadas negativas se corresponden con un monitor situada a la
izquierda o arriba del principal).

De todos modos, supongo que habrás mirado que en las opciones del driver
no haya algún valor de "margen de inicio" o algo así.

¿Es una matricial? Si es así en las configuraciones
internas -generalmente se accede a ellas encendiendo la impresora
apretando algún botón- seguro que tiene algo de eso. Mi Fujitsu que EPD
lo tenía (aunque cuando activaba que no lo hicier enredaba el papel
porque no quedaba sujeto por la ménsula superior y el cabezal lo
arrastraba).

Respuesta Responder a este mensaje
#4 banty
08/11/2007 - 11:03 | Informe spam
"Fernando Briano" wrote in message
news:
Buenas tardes,
Tengo un programa hecho en C#, donde debo imprimir unos recibos en una
Epson LX-810. Las hojas ya vienen impresas con el formato de los recibos y
yo debo imprimir los datos sobre ella.
Estoy usando un PrintDocument, al que le asigno un tamaño de papel

System.Drawing.Printing.PaperSize papel = new
System.Drawing.Printing.PaperSize("documento", 744, 266);
PrintDocument.DefaultPageSettings.PaperSize = papel;
PrintDocument.DefaultPageSettings.Margins = new
System.Drawing.Printing.Margins(0,0,0,0);
PrintDocument.OriginAtMargins = true;

Los datos a imprimir los mando a la impresora con:
e.Graphics.DrawString

El problema que tengo es que a la primera impresión, le deja un margen de
aproximadamente 1cm, pero a las siguientes no, por lo que me resulta
imposible mandar a imprimir varias veces, ya que se desfasa totalmente la
hoja con la impresión. En otras palabras, la coordenada 0,0 desde el
programa se muestra en la hoja en 1,1 aproximadamente, pero solo en la
primera impresión.
Debería eliminar ese margen, ya que se van a seguir imprimiendo hoja tras
hoja, y debería siempre poder imprimir continuamente sin cambiar el papel
ni desfasarse. No he podido encontrar solución aún.
Desde ya agradezco cualquier ayuda.

Fernando Briano
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida