Ich verwende C# mit Winforms. Ich versuche Rechnungen auf einer Papierrolle zu drucken. Die Breite des Papiers beträgt 3 Zoll, aber die Länge des Papiers ist dynamisch (es ist ein Rollenpapier). Die Länge hängt davon ab, wie viele Elemente sich in der Liste befinden. Z.B. in einem Kauf, wenn es 100 verkaufte Artikel gibt, wird es ziemlich lang sein, während für einen einzelnen gekauften Artikel es von geringer Länge sein würde.Drucken auf Rollenpapier
Wenn ich den Bericht nach dem Endauftrag drucke, druckt der Drucker die letzte Seite mehr als ich brauche. Es wirft Papier so lange wie A4 aus. Ich möchte die erforderlichen Zeilen drucken und den Druckvorgang beenden. Ich benutze eine Papierrolle, nicht A4 oder A3 und einen Epson LQ-300 + II Drucker.
Um genauer zu sein, erfolgt der Druck immer auf seitengroße Einheiten. Wenn ich die Seite auf 3in x 8in einstelle, dann habe ich immer einen Ausdruck, der ein Vielfaches von 8in lang ist. Wenn ich eine 9in Rechnung drucken muss, habe ich am Ende einen 16in Ausdruck, der 7in Papier verschwendet. Wie kann ich mit der letzten Seite nur so lange drucken, wie es sein muss? Hier
ist der Code:
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;
}
Was ist Ihre Frage? Sie sollten einfach weiter drucken können, bis Sie fertig sind. Dann bist du fertig. Das ist der Vorteil von Rollenpapier. –
+1, zeichne einfach weiter bis du fertig bist und beende eine Aussage, um das Papier zu schneiden. Ich habe dies mit GDI gemacht, keine Erfahrung mit Crystal Reports – Anton