我正在使用C#与Winforms。 我想打印一张纸带上的账单。 纸张的宽度为3英寸,但纸张的长度是动态的(是一种卷纸)。 长度取决于列表中有多少项。 例如,在购买中如果有100个项目出售,则卷会很长,而对于购买单个项目,则长度较小。
当我打印报表时,在作业结束后,打印机将弹出比我需要的最后一页更多的页面。 它会弹出尺寸为A4的纸张。 我想打印所需行,然后停止打印。 我使用纸卷,不是A4或A3,以及Epson LQ-300 + II打印机。
更具体地说,打印始终是按页面大小单位进行的。 如果我将页面设置为3英寸x8英寸,那么我总是得到一个长度为8英寸的倍数的打印输出。 如果我有一个要打印的9英寸账单,那么我最终得到的打印输出长度为16英寸,浪费了7英寸的纸张。 如何只打印所需长度的最后一页?
这是代码:
当我打印报表时,在作业结束后,打印机将弹出比我需要的最后一页更多的页面。 它会弹出尺寸为A4的纸张。 我想打印所需行,然后停止打印。 我使用纸卷,不是A4或A3,以及Epson LQ-300 + II打印机。
更具体地说,打印始终是按页面大小单位进行的。 如果我将页面设置为3英寸x8英寸,那么我总是得到一个长度为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;
}