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

有解决过类似问题的大神请留步,救救我吧。
-------分割-------
最近在做一个快递标签打印系统,使用.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;
}
}
}

使用了以上两种方案进行打印测试,均会在两页之间有个明显的暂停并且回纸。

时间: 2024-10-17 09:21:38

【求助】关于.NET(C#)调用斑马打印机(ZDesigner GK888t (EPL))换页时退纸的问题的相关文章

C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)

在批量打印商品标签时一般都要加上条码或图片,而这类应用大多是使用斑马打印机,所以我也遇到了怎么打印的问题. 一种办法是用标签设计软件做好模板,在标签设计软件中打印,这种办法不用写代码,但对我来说觉得不能接受,所以尝试代码解决问题. 网上搜索一番,找不到什么资料,基本都是说发送ZPL.EPL指令到打印机,而且还是COM/LPT口连接打印机.后来研究.net的打印类库,发现是用绘图方式打印至打印机的,也叫GDI打印,于是思路有了点突破,那我可以用报表工具画好标签,运行报表时,把结果输出位图,再发送至

斑马打印机客户端GET和POST,以及后端两种打印方式。

背景环境:打印机安装在客户端外网.当用户登录时,通过ajax取服务器数据,返回打印机命令,然后客户端通过JS发送给斑马打印机. 1.使用Get方式打印 1.1 前端页面js代码 jQuery(function () { $("#btnRePrint").click(function () { //var cartonId = "450002241530221"; var cartonId = ""; if ($("input[name=

基于C#在WPF中使用斑马打印机进行打印【转】

原文链接:http://ju.outofmemory.cn/entry/132476 最近在项目中接手了一个比较有挑战性的模块——用斑马打印机将需要打印的内容打印出来.苦苦折腾了两天,总算有所收获,就发到网上来骗骗分数-_-|| 项目中使用的打印机型号为GX430t的打印机,接手的时候,自己对于打印机这块儿是眼前一抹黑,啥都不知道.没办法一步步来. 首先尝试使用WPF中的PrintDialog里面的PrintVisual和PrintDocument方法,打印机是一点反应都没有,最后得到的结论是:

.net 调用小票打印机 打印票据

public class PrintInvoice     { #region 01.获得打印机1获得吧台打印机2获得后厨打印机 /// <summary> /// 获得打印机1获得吧台打印机2获得后厨打印机 /// </summary> public TcpClient GetPrint(int n = 1) { var client = new System.Net.Sockets.TcpClient(); var bll = new PrintAndPlaceBll(); v

基于C#在WPF中使用斑马打印机进行打印

最近在项目中接手了一个比较有挑战性的模块——用斑马打印机将需要打印的内容打印出来.苦苦折腾了两天,总算有所收获,就发到网上来骗骗分数-_-|| 项目中使用的打印机型号为GX430t的打印机,接手的时候,自己对于打印机这块儿是眼前一抹黑,啥都不知道.没办法一步步来. 首先尝试使用WPF中的PrintDialog里面的PrintVisual和PrintDocument方法,打印机是一点反应都没有,最后得到的结论是:斑马打印机不支持MS的XPS文档格式,所以使用WPF来排版后进行驱动打印就不要想了,不

斑马打印机打印不出来字怎么解决

在条码打印软件中制作标签的时候,有的时候标签内容比较多,可能不注意就在标签上或者数据源中添加了一个空对象,也没预览,就直接连接斑马打印机进行打印了.最后发现,点击打印之后,斑马打印机没反应,咨询是怎么回来,今天我们一起来看下有关条码打印软件连接斑马打印机打印不出来字的解决方法.1.打开中琅条码打印软件,在软件中设置一下纸张和标签的尺寸.2.点击软件左侧的"实心A"按钮,在画布上绘制一个普通文本对象,双击普通文本,在图形属性-数据源中,点击"修改"按钮,数据对象类型选

解决android调用IIS Express中的WCF服务时,出现错误400问题

IIS Express仅支持localhost主机名地址访问. 找到IIS Express Config文件下的 applicationhost.confi   修改配置 再来调试android应用,发下已经成功调用 解决android调用IIS Express中的WCF服务时,出现错误400问题,布布扣,bubuko.com

求助,JS 方法调用的问题,写了返回值,确调用时返回Undefined(新人第一次写)

文本框txtUserName 的Onbulr 绑定方法 txtUserNameOnblur  这可以正常执行 而下面的btnRegister 的click 事件则无法正常调用    txtUserNameOnblur () 不知道是不是ajax的回调函数调用问题,求助 $("#txtUserName").bind("blur",txtUserNameOnblur); function txtUserNameOnblur() { if ($("#txtUse

Android调用蓝牙打印机

首先需要一个jar包,bluesdk,请自行百度. 具体排版样式跟网络打印机打印排版样式实现一样,这里不多叙述,只贴一个实现方法代码.蓝牙打印机使用前需要先跟手机配对,可以保存在本地,记录下地址,这里可以看到我每次调用这个方法 让线程休息了1s,原因是通过测试发现,当数据量特别大的时候,反复调用这个方法会出现丢失数据的现象,所以,每次执行完毕,都让他休息1s钟. public void printData(String data) { if (Settings.BluetoothDeviceAd