2013-10-24 40 views
0

我面临zebra 3842标签打印机工作缓慢的问题。zebra 3842 - 使用.net的慢速标签打印

我使用标准的.net打印框架。 (System.Drawing.Printing.PrintDocument) 打印PrintDocument的Print()函数后,打印机会等待几秒钟并打印第一张标签。然后再等一秒钟,然后拉回标签并打印。这个过程就是这样。

你可以看到从下面的视频中的情况:(单打印通话,用3页) http://www.youtube.com/watch?v=DeIoO6qT0kE

我试图打印3页与Microsoft Word应用程序。 (同样的情况也存在) 但是,如果我使用Zebra的软件来打印标签,它可以正常运行而不会延迟。

我也安装了最新的驱动程序。

我是新来的标签打印,所以我请求有经验的人帮忙。 可能是什么问题?我应该先检查什么?

在此先感谢。

回答

0

就目前而言,您正在使用的类(PrintDocument)不理解打印机的本机语言(EPL - 我认为!)。即使您的标签设计很简单,PrintDocument也无法生成EPL,因此只需创建一个与整个标签大小相同的图像,然后将图像发送到Zebra打印机驱动程序。由于驾驶员仅仅是被传递了一个图像,它并不知道你真的只是在打印文本和一个或两个盒子。相反,它将整个标签发送到打印机进行打印。因此,不是仅仅发送一些轻量级的EPL文本命令,而是将表示整个标签区域的数据作为图像发送。这意味着您发送的是千字节的数据而不是数据字节。此外,驱动程序不得不努力将图像数据转换为大型EPL图形命令。

我看到一个明显的选择,取决于您使用的是什么连接。它要求您阅读一些EPL手册,并将标签设计放在一起,以便于您使用。您可以在此处看到示例EPL标签:https://support.zebra.com/cpws/docs/eltron/common/epl2_samp.htm,此处的EPL手册为:https://support.zebra.com/cpws/docs/eltron/epl2/EPL2_Prog.pdf

如果使用USB:

使用RawPrinterHelper通过驱动程序发送纯EPL命令到打印机:

http://support.microsoft.com/kb/322091

string printerName = "Your_Printer_Driver_Name"; 
string eplCommand = "N\r\nA50,0,0,1,1,1,N,\"Example 1\"\r\nP1\r\n"; 
RawPrinterHelper.SendStringToPrinter(printerName , eplCommand); 

如果您使用的是TCP(以太网):

你的工作甚至是sim PLER。你甚至不需要司机。只需通过TCP连接将EPL下载到打印机:

string eplString = "N\r\nA50,0,0,1,1,1,N,\"Example 1\"\r\nP1\r\n"; 

// Open connection 
System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient(); 
client.Connect(ipAddress, port); 

// Write EPL String to connection 
System.IO.StreamWriter writer = new System.IO.StreamWriter(client.GetStream()); 
writer.Write(eplString); 
writer.Flush(); 

// Close Connection 
writer.Close(); 
client.Close(); 
+0

嗨杰森,谢谢你的回答。其实我也尝试过使用EPL命令。 (我也使用RawPrinterHelper类)通常,如果我们发送EPL而不是使用PrintDocument,打印机会更快地启动作业。有趣的是,如果我发送“P2,1”命令来打印2份标签,它会毫不拖延地打印出来。但是,如果我尝试使用“N ... P1 ... N ... P1”命令打印两个不同的标签,它将在每个标签后等待视频中的2-3秒。这里有一个有趣的部分:如果我为标签发送非常短的EPL命令(例如只打印一个文本),它不会在标签之间休眠。 – jetblack

+0

..如果我使用“Zebra Setup Utilities”中的“与打印机直接通信”,这种情况不会改变。 – jetblack

相关问题