作者:快乐俱乐部老巢_260 | 来源:互联网 | 2023-09-07 19:43
现在单打已经通过单个打印了怎么实现批量连打如果一个一个的数据添加的话打印机每次打印一张纸的话就会停顿一下矫正打印针如何实现一直打印不停顿高手出来指点一下啊!这个是打印的代码!
现在单打已经通过单个打印了 怎么实现批量连打 如果一个一个的数据添加的话 打印机每次打印一张纸的话 就会停顿一下 矫正打印针 如何实现一直打印 不停顿 高手出来指点一下啊!
这个是打印的代码!
//设置<打印文档>的边距
Margins margin = new Margins(0, 0, 0, 0);
pd.DefaultPageSettings.Margins = margin;
//设置<打印文档>的纸张大小
PaperSize pageSize = new PaperSize("快递单打印", Convert.ToInt32(MillimetersToPixel(Convert.ToInt32(dtBillType.Rows[0]["BillWidth"]), fDpiX)), Convert.ToInt32(MillimetersToPixel(Convert.ToInt32(dtBillType.Rows[0]["BillHeight"]), fDpiY)));
pd.DefaultPageSettings.PaperSize = pageSize;
//设置打印状态
pd.PrintController = new StandardPrintController();
//设置打印机名
pd.PrinterSettings.PrinterName = "Epson LQ-1600K";
printPreviewDialog.Document = pd;
printPreviewDialog.ShowDialog();
pd.Print();
7 个解决方案
GDI+画的时候直接把页面高度设置成单页面高度*数量,循环数据画在对应的位置上,然后只执行一次Print()
不过这样有可能出现打着打着就窜行了的情况
我查了好多资料也没找到 快递单连打的资料啊 别人的那种打印方法也不知道是什么样的打印方法! 他们是可以批量设置打印页 我这个是可以打印的 关键就是效率太低了!一张快递单加上矫正打印针的时间需要20秒以上的!太慢了!
你的意思是说把 pageSize这个直接设置纸张大小的高度设置为打印多少张的高度 然后按照比例循环填入数据 只执行一次操作?
此外,打印的快慢跟打印机有关系
打印一张需要20秒,明显是打印机打印的太慢了
你用打印机打印个word试试看,如果也那么慢,就跟你的代码没啥关系
而你修改代码后也只是节约了每张之间的停顿时间,而且会有打印N张之后纸张偏移越来越大的风险
每打印一张就撕掉一张,然后打印机退纸重新打印下一张,这种方式必然是最不会产生差错的方式,不过也是效率最低的方式
我要修正的就是打印之间的停顿时间的!他主要慢就慢在打印针头在矫正位置! 每打完一单 就要停顿好久 打印一单是很快的! 我测试下 看纸张设置大一些是否可行!
纸张应该会有最大高度限制,不能无限大的.
最大应该是65535吧
反正你也不应该一次性打几百张,那样中间如果出了差错就不好办了
其实控制在一次打印个20-30张比较好,然后让打印机归位一次