我正在使用C#和Winforms . 我正试图在纸卷上打印钞票 . 纸张的宽度为3英寸,但纸张的长度是动态的(它是卷纸) . 长度取决于列表中有多少项 . 例如 . 在购买时,如果有100件商品售出,那么它将是相当长的卷,而对于购买的单件商品,它将是很小的长度 .
当我打印报告时,在结束作业之后,打印机会弹出最后一页而不是我需要的页面 . 只要A4尺寸就可以弹出纸张 . 我想打印所需的行,然后停止打印 . 我使用的是一卷纸,而不是A4或A3和Epson 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;
}
4 回答
您是否尝试使用仅“一行”长的页面?
省略上下边框,可以不停打印 .
现在添加一点(所以页面可以被撕掉)并弹出它 .
试试这个:
见:http://msdn.microsoft.com/en-us/library/system.drawing.printing.pagesettings.papersize.aspx
您还可以动态调整纸张尺寸 . 减少每页一行的工作量,但我想如果有人有理由这样做会产生更好的打印预览:
您可以在此处定义自定义纸张尺寸并在报告中使用它 .
打开打印机文件夹(从控制面板) .
从文件菜单中打开 Server Properties . 它会打开 Printer and Server Properties 对话框 .
选择检查 Create a new Form
指定页面宽度高度 . 我建议你让你的身高3英寸 .
现在单击 Save Form 按钮 .
您的自定义页面已准备就绪
将此纸张设置为报告和打印机属性中的默认纸张尺寸 .
现在你很高兴 .
您还可以使用打印预览选项来完成此过程 .