Печать на рулонной бумаге

Я использую C # с Winforms. Я пытаюсь распечатать счета на бумажном рулоне. Ширина бумаги 3 дюйма, но длина бумаги динамическая (это рулонная бумага). Длина зависит от количества элементов в списке. Например, при покупке, если продано 100 единиц товара, это будет довольно длинный рулон, в то время как для одного купленного товара он будет иметь небольшую длину.

Когда я распечатываю отчет, после завершения работы, принтер выталкивает последнюю страницу еще чем мне нужно. Он выводит бумагу размером до A4. Я хочу напечатать необходимые строки, а затем прекратить печать. Я использую рулон бумаги, а не A4 или A3, и принтер Epson LQ-300 + II.

Чтобы быть более конкретным, печать всегда выполняется в единицах размера страницы. Если я устанавливаю размер страницы 3 на 8 дюймов, то всегда получаю распечатку, кратную 8 дюймам. Если мне нужно распечатать 9-дюймовую банкноту, я получаю 16-дюймовую распечатку, тратя 7 дюймов бумаги. Как я могу печатать так, чтобы длина последней страницы была такой, какой она должна быть?

Вот код:

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;
        }
24
задан Gabe 10 December 2010 в 07:44
поделиться