关于.NET(C#)调用斑马打印机(ZDesigner GK888t (EPL))换页时退纸的问题

咖啡博士 2017-03-01 09:13:14
有解决过类似问题的大神请留步,救救我吧。
-------分割-------
最近在做一个快递标签打印系统,使用.NET(C#)调用斑马打印机【ZDesigner GK888t (EPL)】进行打印,程序实现的是连续打印,但实际打印机却是打一张,停一下,退一点纸,然后下一张,再停一下,。。。依此类推。
因为是大批量的标签,所以这个间隔不能忍受,尝试了各种打印机属性和选项的设置都没有用。
百度看到有人说换成海鸥的驱动,测试后果然不再中间停顿,但业务方不是很接受这个方案(机器较多,换驱动的工作量也蛮大的),没办法只能找代码的问题,测试发现即使把打印逻辑精简到最简也一样会停顿,以下是打印两页最精简的测试代码,请帮我看看有什么不妥:
方案一:

using System.Drawing.Printing;
using System.IO;
using System.Windows.Forms;

namespace PrintServer
{
internal static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
private static void Main(string[] args)
{
for (int i = 0; i < 2; i++)
{
Test();
}
}

private static void Test()
{
var printDocument = new PrintDocument();
printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
printDocument.PrinterSettings.PrinterName = "ZDesigner GK888t (EPL)";
printDocument.Print();
}

private static void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawLine(Pens.Black, 100, 100, 200, 200);
}
}
}


方案二:
using System.Drawing.Printing;
using System.IO;
using System.Windows.Forms;

namespace PrintServer
{
internal static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
private static void Main(string[] args)
{
Test();
}

private static void Test()
{
var printDocument = new PrintDocument();
printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
printDocument.PrinterSettings.PrinterName = "ZDesigner GK888t (EPL)";
printDocument.Print();
}

private static int _printedCount = 0;
private static void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawLine(Pens.Black, 100, 100, 200, 200);
_printedCount++;
e.HasMorePages = _printedCount < 2;
}
}
}



使用了以上两种方案进行打印测试,均会在两页之间有个明显的暂停并且回纸。
...全文
3362 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
听雨停了 2017-08-30
  • 打赏
  • 举报
回复
如果标签走的位置刚好是可以直接撕下的位置,那个起始位置与打印位置是不一样的,在打印的时候标签只有回退才能走到正确的打印位置上去,这是很正常的。
听雨停了 2017-08-30
  • 打赏
  • 举报
回复
在电脑的驱动设置里,右击打印机的型号--打印首选项--卷--打印后操作更改成撕纸,打印后走纸距离默认为0. 希望可以帮到你
bumblebee13 2017-08-25
  • 打赏
  • 举报
回复
我也碰到类似的问题,但是我这边同是斑马一个型号的打印机,有的就很正常出条码,有的就停顿。就大神指导
ftp2008 2017-03-08
  • 打赏
  • 举报
回复
碰到其他牌子的打印机类似问题,打印机上设置
咖啡博士 2017-03-03
  • 打赏
  • 举报
回复
自己顶一下,别沉了啊,等高手来
Poopaye 2017-03-01
  • 打赏
  • 举报
回复
从你的描述上来看,举个栗子:现在你要下达一项今天请全体程序员来办公司开会的通知。 但是你现在在外面办事,不能直接传达给所有程序员,你只能找一个负责人,让他来传达。 如果这个负责人是个不负责任的家伙,把今天说成了明天,那么你的通知永远不能正确传达。

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧