Estoy usando C# con Winforms. Estoy tratando de imprimir facturas en un rollo de papel. El ancho del papel es de 3 pulgadas, pero la longitud del papel es dinámico (es un rollo de papel). La duración depende de cuántos elementos hay en la lista. P.ej. en una compra si hay 100 artículos vendidos, será bastante largo, mientras que para un solo artículo comprado será de poca longitud.Impresión en rollo de papel
Cuando imprimo el informe, después del trabajo final, la impresora expulsa la última página más de lo que necesito. Expulsa el papel siempre que tenga tamaño A4. Quiero imprimir las líneas requeridas, luego dejo de imprimir. Uso un rollo de papel, no A4 o A3 y una impresora Epson LQ-300 + II.
Para ser más específicos, la impresión siempre se realiza en unidades de tamaño de página. Si configuro la página para que sea de 3 pulgadas x 8 pulgadas, siempre termino con una copia impresa que es un múltiplo de 8 pulgadas de largo. Si tengo que imprimir una cuenta de 9 pulgadas, termino con una impresión de 16 pulgadas, desperdiciando 7 pulgadas de papel. ¿Cómo puedo imprimir con la última página solo por el tiempo que debe ser?
Aquí está el código:
private void printDoc_PrintPage(Object sender, PrintPageEventArgs e)
{
Font printFont = new Font("Courier New", 12);
int y = 15;
e.Graphics.DrawString("a Line", printFont, Brushes.Black, 0, y); y = y + 20;
e.Graphics.DrawString(" Line", printFont, Brushes.Black, 0, y); y = y + 25;
e.Graphics.DrawString(" Line", printFont, Brushes.Black, 0, y); y = y + 35;
e.Graphics.DrawString(" Line", printFont, Brushes.Black, 0, y); y = y + 45;
}
¿Cuál es su pregunta? Deberías poder seguir imprimiendo hasta que termines. Entonces habrás terminado. Esa es la ventaja del rollo de papel. –
+1, simplemente siga dibujando hasta que termine y termine con una frase para cortar el papel. Solía hacer esto usando GDI, sin experiencia con los informes de Crystal – Anton