Я использую С# с Winforms. Я пытаюсь распечатать счета на бумажном рулоне. Ширина бумаги составляет 3 дюйма, но длина бумаги динамическая (ее рулонная бумага). Длина зависит от количества элементов в списке. Например. в покупке, если продано 100 предметов, тогда это будет довольно длинный рулон, а для одного купленного предмета он будет иметь небольшую длину.
Когда я печатаю отчет, после конечного задания принтер извлекает последнюю страницу больше, чем мне нужно. Он извлекает бумагу до размера A4. Я хочу напечатать необходимые строки, а затем прекратить печать. Я использую рулон бумаги, а не A4 или A3 и принтер Epson LQ-300 + II.
Чтобы быть более конкретным, печать всегда выполняется для единиц размера страницы. Если я установил страницу в 3in x 8in, тогда я всегда получаю распечатку с кратным 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;
}