我正在使用 C# 和 Winforms。我正在尝试在纸卷上打印账单。纸张的宽度为 3 英寸,但纸张的长度是动态的(它是卷纸)。长度取决于列表中有多少项。例如。在一次购买中,如果售出 100 件商品,那么它会很长,而对于购买的单个商品,它的长度会很短。
当我打印报告时,在结束作业后,打印机弹出的最后一页超出了我的需要。它弹出 A4 大小的纸张。我想打印所需的行,然后停止打印。 我使用的是一卷纸,不是 A4 或 A3,还有一台爱普生 LQ-300 + II 打印机。
更具体地说,打印总是以页面大小为单位进行。如果我将页面设置为 3 英寸 x 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;
}
最佳答案
您是否尝试过使用只有“一行”长的页面?
省略上下边框,可以不停打印。
现在添加一点(这样页面就可以撕掉)然后弹出。
试试这个:
PaperSize pkCustomSize1 = new PaperSize("First custom size", 100, 200);
printDoc.DefaultPageSettings.PaperSize = pkCustomSize1
参见: http://msdn.microsoft.com/en-us/library/system.drawing.printing.pagesettings.papersize.aspx
关于c# - 在卷纸上打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365360/