C#控制打印机(直接发送打印机命令到打印机)

C#控制打印机(直接发送打印机命令到打印机)
C#控制打印机(直接发送打印机命令到打印机)

C#控制打印机(直接发送打印机命令到打印

机)

一个打印机控制类,很有用的,其中使用了windows api控制lpt端口,对条码打印机的控制方法如下:将打印机的命令写到一个文件里,再使用之。

******************************************************************************* *******************************************************

//代码:

//

using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;

namespace LPTControls

{

public class LPTControls

{

[StructLayout(LayoutKind.Sequential)]

private struct OVERLAPPED

{

int Internal;

intInternalHigh;

int Offset;

intOffSetHigh;

inthEvent;

}

[DllImport("kernel32.dll")]

private static extern intCreateFile(string lpFileName, uintdwDesiredAccess, intdwShareMode, intlpSecurityAttributes, intdwCreationDisposition, intdwFlagsAndAttributes, inthTemplateFile); [DllImport("kernel32.dll")]

private static extern boolWriteFile(inthFile, byte[] lpBuffer, intnNumberOfBytesToWriter, out intlpNumberOfBytesWriten, out OVERLAPPED lpOverLapped);

[DllImport("kernel32.dll")]

private static extern boolCloseHandle(inthObject);

privateintiHandle;

//打开LPT 端口

public bool Open()

{

iHandle = CreateFile("lpt1", 0x40000000, 0, 0, 3, 0, 0);

if (iHandle != -1)

{

return true;

}

else

{

return false;

}

}

//打印函数,参数为打印机的命令或者其他文本!

public bool Write(string MyString)

{

if (iHandle != 1)

{

inti;

OVERLAPPED x;

byte[] mybyte = System.Text.Encoding.Default.GetBytes(MyString);

return WriteFile(iHandle, mybyte, mybyte.Length, out i, out x);

}

else

{

throw new Exception("端口未打开~!");

}

}

//关闭打印端口

public bool Close()

{

return CloseHandle(iHandle);

}

}

}

//***************************************************************************** ********

//使用方法

private void button1_Click(object sender, EventArgs e)

{

LPTControls.LPTControlslpt = new LPTControls.LPTControls();

string mycommanglines = System.IO.File.ReadAllText("print.txt");//print.txt里写了条码机的命令

lpt.Open();

lpt.Write(mycommanglines);

lpt.Close();

}

用命令添加打印机

如何运用命令行添加打印机? 如果你是一个单位的网管恐怕为单位的各个科室、部门添加打印机特别是网络打印机是件很令人头痛的事,挨个部门跑吗?不,如果你能熟练的掌握下面的介绍的命令,那么你坐在自己的电脑前不需要其他任何的软件就可以轻松完成。 虽然Microsoft Windows NT 4.0 Zero Administration Kit (ZAK) 包含一些诸如Con2prt.exe 的工具,但是通过Con2prt.exe 工具,只能添加或删除网络打印机。您还可以使用Windows 2000 修改和删除本地打印机。因此,管理员可以通过使用户运行批处理文件或登录脚本,从而控制用户打印能力的所有方面。 注意:如果在登录脚本或客户端启动的批处理文件中使用此命令,则客户端计算机需要运行Windows 2000 或Windows Server 2003。由于要在客户端计算机上运行登录脚本,因此Windows NT 4.0 客户端无法处理此命令。 此外,可以从管理员的工作站或者从服务器运行这些命令,从而向客户端计算机推送安装打印机,而无须从实际的计算机执行安装。 更多信息 下面的示例列出此命令的最常见用法。 注意:此命令只能在基于Windows 2000 或基于Windows Server 2003 的计算机上运行,该计算机对应的服务器或工作站可以为Windows 2000、Windows Server 2003 或Windows NT 4.0。 下面的示例在一台名为SERVER 的计算机上添加一个Agfa 打印机驱动程序,并创建一个逻辑打印机。 注意:这两行都可以放入批处理文件中,也可以在命令提示符下按照任意顺序键入。这两行已换行以便于阅读。 rundll32 printui.dll,PrintUIEntry /ia /c\\server /m "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000" /f %windir%\inf\ntprint.inf rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /c\\SERVER /f "%windir%\inf\ntprint.inf" /r "lpt1:"/m "AGFA-AccuSet v52.3" 下面的示例从名为SERVER 的计算机中删除Agfa 打印机: rundll32 printui.dll,PrintUIEntry /dl /n "Test Printer" /c\\SERVER 有关可用开关的更多信息,请在该命令后键入/?。 此外,在命令提示符处,键入: rundll32 printui.dll,PrintUIEntry /? 上面的命令可显示用法开关的完整列表,并提供使用此方法的详细示例。 此外,在命令提示符处,键入: rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ? 上面的命令可显示有关更改打印机属性的其他帮助信息。下面的示例将当前的打印机驱动程序切换至指定的新打印机驱动程序(已安装在服务器上): rundll32 printui.dll,PrintUIEntry /Xs /n\\SERVER\PRINTERSHARENAME DriverName "Lexmark C752 PS3" 注意:下面是一个语法示例,只要创建“标准TCP/IP 端口”,该语法即可正确运行。 rundll32 printui.dll,PrintUIEntry /if /b "NORTH-US-SRTEST-TEST24-BOGUS"

斑马条码打印机控制指令说明

ZPL2(Zebra印表機語言)简易指令集.doc2008年07月30日星期三17:01 ^XA: 指令名?: 起始指令 指令左右: 當印表機接受到此命令時表示本段程式開始. ^XZ: 指令名稱: 終止指令 指令作用: 當印表機接受到此指令時即表示本段程式終止并開始列印 (注: 該兩指令需配對使用) ^XA--------起始指令 ^FO22,30^BY2,2,38^BCN,,N,N,N^FD COO2 PN MFGID DELLDATE SN ^FS^FO40,71^A0,24,32^FD COO2 - PN - MFGID - DELLDATE - SN ^FS ^FO45,98^BY2,2,38^BCN,,N,N,N^FD REV ^FS ^FO43,140^A0,24,32^FDREV REV ^FS ^FO240,125^A0,24,32^FDMade in COUNTRY ^FS ^PQ PRNQTY ^XZ--------終止指令

^LH x,y 指令名稱: 定義標簽起始位置指令 指令作用: (x,y)表示的含義是坐標值,但實際X和Y的值是點的數目.坐標值以每毫米包涵點數多少計算,依機型不同而有差異,如203dpi的機型,每1mm代表8點.如300dpi的機型,每1mm代表12點. 范例: ^LH30,30^FS 如果你的機型是用203dpi則表示: 在離卷紙邊 3.75* 3.75mm處為標簽起始點. 3.75是得來的. 203dpi 8點/mm 300dpi 12點/mm ^LL y 指令名稱: 定義標簽長度指令 指令作用: 限定使用在連續標簽紙,y以每毫米(mm)包含點數多少計算,每一機型計算方式與前頁一樣. 范例:

打印机怎么取消打印任务

打印机怎么取消打印任务 一般正在打印的任务取消是很不好取消的!我每次点取消,打印程序就死掉,没有响应! 下面整理了几种方法供应大家参考一下: 1.正常的取消打印任务的方法是:双击屏幕右下角任务栏里的打印机图标,然后在弹出窗口的列表中相应打印任务上点右键就可以完成“取消任务”。 2.但往往会有在多次连续进行打印操作时,会出现列表中的打印任务无法完成,而按上述方法步骤又取消不了任务的情况,这时往往我们采用重启打印机来解决。 3.最糟的就是重启打印机后,仍然无法取消打印任务,这时我们只能重启计算机了(我之前就是这样做的)。 针对3的解决办法: 1.先用正常方法取消任务,取消不了时,按下组合键“ctrl+alt+del”,呼出任务管理器的菜单,点上面的“进程”,找到spoolsv.exe这个文件,点下面的“结束进程”,再点“是(Y)”,终止此进程。 2.在我的电脑上点右键,选“管理”,在“计算机管理”窗口中,打开“服务”,在右栏中找到print spooler,在其上点右键,选重新启动。 3.这样就可以不重启计算机而取消掉打印任务了。 另:只要清空C:\WINDOWS\system32\spool\PRINTERS 目录下所有的文件即可。 而原因在Microsoft网站上也有文档说明:Windows 后台打印程序没有删除打印作业后台文件导致的打印程序可能会反复地尝试对该打印作业进行后台处理。 解决方案: 为避免发生此问题,请不要在打印后台文件位于%Systemroot%\System32\Spool\Printers 文件夹中时更改它的属性。 要解决此问题,请删除只读属性,然后将该后台文件从%Systemroot%\System32\Spool\Printers 文件夹中删除。 彩色复印机租赁https://www.360docs.net/doc/7810384508.html,/

58打印控制命令

打印控制命令 概述 LANPOS5896打印机提供了ESC/POS打印命令集。 各个命令的描述形式如下: 打印命令功能 格式:ASCII:以标准ASCII字符序列表示 十进制:以十进制数字序列表示 十六进制:以十六进制数字序列表示 说明:该命令功能和使用说明 例子:为了更容易理解该命令会列出一些例子。 打印命令 LF 打印并换行 格式:ASCII:LF 十进制:10 十六进制:0A 说明:打印行缓冲器里的内容并向前走纸一行。当行缓冲器空时只向前走纸一行。ESC J 打印并走纸N点行 格式:ASCII:ESC J n 十进制:27 74 n 十六进制:1B 4A n 说明:打印行缓冲器里的内容,并向前走纸n点行(即n/203英寸)。 N=0~255。 该命令只本行打印有效,不改变ESC 2,ESC 3命令设置的行间距值。 示例: 行间距设置命令

ESC 2 设置字符行间距为1/6英寸 格式:ASCII:ESC 2 十进制:27 50 十六进制:1B 32 说明:设置行间距为1/6英寸 ESC 3 设置行间距为n点行(n/203英寸) 格式:ASCII:ESC 3 十进制:27 51 十六进制:1B 33 说明:设置行间距为n点行。n=0~255。 LANPOS5896打印机的每点距为1/203英寸,即该命令设置行间距为n/203英寸。 默认值为n=30。 示例: 字符打印命令 ESC !设置字符打印方式 格式:ASCII:ESC !N 十进制:27 33 N 十六进制:1B 21 N 说明:ESC !n是综合性的字符打印方式设置命令,用于选择打印字符的大小。打印参数n的每位定义为: n的默认值为0,即字符不放大。 ESC SO 设置字符倍宽打印

打印机任务清除

1.选中打印队列中状态为“错误”的打印任务,或者选中自己需要删除的那个特定打印任务,并用鼠标右键单击之,从随后出现的右键菜单中执行“取消”命令(如图1所示),这样的话当前被选中的目标打印任务过一会儿就会被自动从打印队列中删除掉了。 2. 在打印队列窗口中,先单击菜单栏中的“打印机”选项,从其后弹出的下拉菜单中单击“取消所有文档”命令,如此一来存储到打印队列中的所有打印任务都将被自动删除掉。 3. 遇到这种现象时,我们究竟该如何才能将那些“顽固不化”的打印任务删除掉呢?其实有一种比较简单的方法,那就是重新启动一下系统的Print Spooler服务,就能有效地将打印队列中那些“顽固不化”的打印任务删除掉了 4. 先用鼠标逐一展开系统桌面中的“开始”、“运行”命令,在其后出现的系统运行对话框中,输入字符串命令“spool”(如图3所示),单击“确定”按钮,进入系统子文件夹“spool”窗口; 其次双击“spool”窗口中的“printers”文件夹图标,打开打印机后台文件夹窗口,出现在该窗口中的所有文件都与打印队列中的打印任务是一一对应的;借助Ctrl功能键,将该子窗口中所有的任务文件全部选中,再用鼠标右键单击所有处于选中状态的任务文件,并执行右键菜单中的“删除”命令,就能实现删除所有与打印任务相对应的后台文件的目的了。之后,当我们再次尝试打开打印队列窗口时,就会发现所有打印任务都已经被自动删除掉了。 5.双击打印图标,删除打印任务 如果我们是在Word应用程序界面中给打印机发送打印任务的话,那么还有一种更简单的方法来快速删除目标打印任务,该方法就是及时双击Word应用程序界面状态栏中的打印机图标。 在默认状态下,Word应用程序会自动选用后台打印方式来打印文档材料,当我们在Word应用程序界面中依次执行了“文件”/“打印”命令后,就能在如图4所示的状态栏处看到一个打印机图标,这表明Word应用程序正在后台悄悄处理我们的文档,该打印图标右侧的数字指的是当前正被处理的页的具体页码。一旦看到该打印图标出现时,我们只要用鼠标双击它就能实现快速删除当前打印任务的目的,当然双击该图标的速度一定要快,不然的话当前打印任务就无法被删除了。 当然,我们要是发现自己的Word应用程序界面中没有显示状态栏时,就可以按照如下操作步骤,将状态栏重新显示出来: 图 5 首先启动Word应用程序,并打开需要打印的目标文档文件,然后在文档编辑界面中,单击一下菜单栏中的“工具”菜单项,从弹出的下拉菜单中执行“选项”命令,打开目标文档的选项设置对话框; 其次单击该设置对话框中的“视图”标签,进入到如图5所示的标签页面;在该标签页面的“显示”设置项处,检查一下“状态栏”复选框是否处于选中状态,要是还没有选中的话,那我们必须及时将它重新选中,再单击一下“确定”按钮,这样一来状态栏就能显示在Word应用程序界面中了。 用批处理命令,删除打印任务 前面本文曾介绍过,通过重新启动与打印机有关的系统服务Print Spooler,就能实现快速删除打印任务的目的,可是用手工方法先停止Print Spooler服务,再启动Print Spooler服务,这样的操作比较麻烦。为了进一步提高打印任务的删除效率,笔者经过仔细琢磨,特意创建了一个重新启动系统服务Print Spooler的批处理文件,以后我们需要删除打印任务时,只要双击一下创建好的批处理文件,就能将打印任务快速删除掉了,下面就是该方法的具体实施步骤: 图 6 首先运行记事本之类的文本编辑程序,并在其编辑界面中输入如下字符串代码: sc stop Spooler pause sc config pooler start= auto sc start Spooler 在确认上面的代码输入无误后,依次单击记事本编辑界面中的“文件”/“保存”命令,并将上面的代码保存成一个扩展名为bat的批处理文件,假设在这里笔者将它保存为“del.bat”;

Zebra条码打印机编程命令

Zebra条码打印机编程命令 条码打印机是一种专业的打印设备,其打印实现方式与普通的激光、喷墨或针式打印机有所不同,世界各大条码打印设备厂商生产的打印机都采用了各自不同的打印语言以实现其打印,如Zebra系列的ZPL,Eltron的EPL,Datamax的DPL等,与普通打印方式相比,采用打印语言的优点在于速度快,精度高,但由于没有统一的标准打印语言,使得用户在使用不同机器时会产生一定的麻烦,好在各种打印语言的语法比较类似,上手也是比较简单的。 目前的条码打印主要采用专业的商用条码打印软件,使用方便、简单,功能强大,且提供了对各类型条码打印设备的接口,适用于需经常变换打印格式、容的用户,如专业印刷厂商等,但此类软件的价格也较昂贵。对于一些采用了企业管理系统的用户,其打印标签的格式通常已较固定,因此可在软件系统中嵌入条码打印部分。一般来说,可采用以下几种方式:直接使用条码打印机的条码语言编写程序;采用各种专业控件提供商编制的条码控件;使用一些高级条码打印软件,如CodeSoft、LabelView提供的ActiveX技术等。这几种方式在方便性、精确性及经济性等方面各有其优缺点,用户可根据需要自行选择,这里,主要对第一种方式给出较为详细的使用方法。 ZPLII是Zebra系列打印机的打印语言,在ZPL的基础上做了一定的更新,其语法通俗易懂,在这里对其条码、文字、图形打印部分给予一一介绍。 基本标签示例: ^XA‘标签格式开始命令 ^LH30,30‘Label Home position设置标签起始参考点坐标为30,30,默认为0,0 ^FO20,10^AD^FDEXAMPLE^FS‘^FO20,10-设置数据域起始坐标,距参考点 20,10 ^AD-设定字体为D(部字体) ^FD-数据域开始命令 EXAMPLE实际打印容 ^FS-数据域分隔命令 ^FO20,60^B3^FDAAA001^FS ‘^B3-选择条码类型为39码

ESC打印控制命令集

ESC打印控制命令集 概述 LANPOS5896打印机提供了ESC/POS打印命令集。 各个命令的描述形式如下: 打印命令功能 格式:ASCII:以标准ASCII字符序列表示 十进制:以十进制数字序列表示 十六进制:以十六进制数字序列表示 说明:该命令功能和使用说明 例子:为了更容易理解该命令会列出一些例子。 打印命令 LF 打印并换行 格式:ASCII:LF 十进制:10 十六进制:0A 说明:打印行缓冲器里的内容并向前走纸一行。当行缓冲器空时只向前走纸一行。ESC J 打印并走纸N点行 格式:ASCII:ESC J n 十进制:27 74 n 十六进制:1B 4A n 说明:打印行缓冲器里的内容,并向前走纸n点行(即n/203英寸)。 n=0~255。

该命令只本行打印有效,不改变ESC 2,ESC 3命令设置的行间距值。 示例: 行间距设置命令 ESC 2 设置字符行间距为1/6英寸 格式:ASCII:ESC 2 十进制:27 50 十六进制:1B 32 说明:设置行间距为1/6英寸 ESC 3 设置行间距为n点行(n/203英寸) 格式:ASCII:ESC 3 十进制:27 51 十六进制:1B 33 说明:设置行间距为n点行。n=0~255。 LANPOS5896打印机的每点距为1/203英寸,即该命令设置行间距为n/203英寸。 默认值为n=30。 示例:

字符打印命令 ESC !设置字符打印方式 格式:ASCII:ESC !N 十进制:27 33 N 十六进制:1B 21 N 说明:ESC !n是综合性的字符打印方式设置命令,用于选择打印字符的大小。打印参数n的每位定义为: n的默认值为0,即字符不放大。 ESC SO 设置字符倍宽打印 格式:ASCII:ESC SO 十进制:27 14 十六进制:1B 0E 说明:在一行内该命令之后的所有字符均以正常宽度的2倍打印;该命令可以用回车或DC4命令删除。 ESC DC4 取消字符倍宽打印 格式:ASCII:ESC DC4 十进制:27 20 十六进制:1B 14 说明:执行些命令后,字符恢复正常宽度打印。

打印机ESCPOS控制指令

打印机E S C P O S控制 指令

HDD-80260打印机ESC/POS 控制指令 ESC/POS 控制指令 HT 横向跳格 如果下一个跳格位置没有设置,该指令被忽略。 如果下一个横向跳格位置超越打印区域,将当前位置设置为[打印宽度+1]。 水平跳格位置由指令ESC D 来设置。 如果接收到此命令时当前位置在[打印宽度+1],打印机执行当前行缓冲区满动作 并且将打印位置移到下一行的起始位置。 默认值跳格位置是每8 个标准ASCII 字符(12×24)字符跳一格。 当前行缓冲区满时,打印机执行下列动作: 标准模式下,打印机打印当前行内容并将打印位置置于下一行的起始位置。 页模式下,打印机进行换行并将打印位置置于下一行的起始位置。 LF 打印并走纸一行 该指令将当前位置置于行首。 FF 打印并走纸

打印后清除缓冲区的内容。 由ESC W 指令设置的打印区域被重置为默认设置。 打印机不执行切纸动作。 该指令将当前位置置于行首。 该指令只在页模式下有效。 CR 打印并回车 设置打印位置为行首。 串行接口模式下该指令被忽略。 并口模式下该指令是否有效由打印机配置决定。 CAN 页模式下删除打印缓冲区内容 该指令只在页模式下有效。 如果先前设定区域与当前区域有重叠部分,重叠部分也被删除。

DLE DC4 n m t 实时产生钱箱开启脉冲 当打印机正在执行钱箱开启命令(ESC p 或 DEL DC4)时,该命令被忽略。 串口模式下,打印机接收该指令后立即执行。 并口模式下,打印机忙的时候该指令不执行。 如果打印数据中包含和此指令相同的数据,则这些数据将被当作该指令执行。用 户必须考虑到这种情况。 该指令尽量不要插在2 个或更多字节的指令序列中。 即使打印机被ESC=(选择外设)命令设置为禁止,该指令依然有效。

解决无法删除打印机的任务

1.根据不同的操作系统做以下操作: o在Windows 2000 Pro 操作系统中,依次点击“开始”→“设置”→“控制面板”,在“控制面板”窗口中,双击“管理工具” 图标。 o在Windows XP 操作系统中,依次点击“开始”→“控制面板”,在“控制面板”窗口中,双击“管理工具”图标。 o在Windows Vista 操作系统中,依次点击“开始( )”→“控制面板”→“系统和维护”→“管理工具”。如图4 管理工具所示: 图4: 管理工具 o在Windows 7 操作系统中,依次点击“开始()” →“控制面板”→“系统和安全”→“管理工具”。 2.在“管理工具”窗口中,双击“服务”图标。如图5 服务所示: 图5: 服务

3.在“服务”窗口中,先单击选中任意一个服务,然后按键盘上的“P” 键,再在服务列表中找到“Print Spooler”服务,双击“Print Spooler”服务。如图6 “Print Spooler”服务所示: 图6: “Print Spooler”服务

4.在“Print S pooler 的属性(本地计算机)”窗口中,选择“常规”选项 卡,点击“停止”按钮,然后点击“确定”按钮。如图7 停止服务所示:图7: 停止服务 5.将“服务”窗口最小化。 6.根据不同的操作系统做以下操作: o在Windows 2000 Pro 和 Windows XP 操作系统中,依次点击“开始”→“运行”。 o在Windows Vista 和 Windows 7 操作系统中,依次点 击“开始()”→“所有程序”→“附件”→“运行”。 7.在“运行”窗口中,输入“spool”,然后点击“确定”按钮。如图8 打开 spool 文件夹所示: 图8: 打开spool 文件夹

斑马条码打印机控制指令说明

ZPL2(Zebra 印表機語言)简易指令集.doc 2008年07月30日星期三 17:01 ^XA: 指令名?:起始指令 指令左右: 當印表機接受到此命令時表示本段程式開始. ^XZ: 指令名稱: 終止指令 指令作用: 當印表機接受到此指令時即表示本段程式終止并開始列印 (注: 該兩指令需配對使用) ^XA--------起始指令 ^FO22,30^BY2,2,38^BCN,,N,N,N^FD COO2 PN MFGID DELLDATE SN ^FS ^FO40,71^A0,24,32^FD COO2 - PN - MFGID - DELLDATE - SN ^FS ^FO45,98^BY2,2,38^BCN,,N,N,N^FD REV ^FS ^FO43,140^A0,24,32^FDREV REV ^FS ^FO240,125^A0,24,32^FDMade in COUNTRY ^FS ^PQ PRNQTY ^XZ--------終止指令 ^LH x,y 指令名稱: 定義標簽起始位置指令 指令作用: (x,y)表示的含義是坐標值,但實際X和Y的值是點的數目.坐標值以每毫米包涵點數多少計算,依機型不同而有差異,如203dpi的機型,每1mm代表8點.如300dpi的機型,每1mm代表12點. 范例: ^LH30,30^FS 如果你的機型是用203dpi則表示:在離卷紙邊3.75*3.75mm處為標簽起始點.3.75是30/8得來的. 203dpi 8點/mm 300dpi 12點/mm ^LL y 指令名稱:定義標簽長度指令 指令作用: 限定使用在連續標簽紙,y以每毫米(mm)包含點數多少計算,每一機型計算方式與前頁一樣. 范例: ^LL300^FS

如何取消打印机中的文档

如何取消打印机中的文档?当一直删除却删除不了时? 第一步、复制这里:net stop spooler点击左下角的开始-再点击运行,右键将net stop spooler粘贴上去。点确定。 第二步、复制这里:C:\WINDOWS\system32\spool\PRINTERS点击左下角的开始-再点击运行,右键将C:\WINDOWS\system32\spool\PRINTERS粘贴上去,再点确定,把里面的所有文件全部删除。 第三步、复制这里:net start spooler点击左下角的开始-再点击运行,右键将net start spooler粘贴上去,再点确定,就行了。 通过打印服务器连接的还是通过电脑共享连接的??? 做为服务器的这台电脑不能管理打印任务吗?? 用它删除被卡住的不能打印的文件不行么? 考虑一下打印驱动问题,不管本地的打印机驱动还是网络上其它电脑上安装是的驱动都要按原装驱动,不然很容易导致打印机解码错误而出现打印错误 另外,开启一下打印机设置里的打印池功能,,或许会有好转... 在Windows XP 操作系统下如下操作,Windows NT类似。 依次点击“开始”→“控制面板”→“性能和维护”→“管理工具”→“服务”→“Print Spooler”. 点击左侧“停止此服务” ,停止打印机服务. 依次点击“开始”→“运行”,在“运行”窗口的命令行中输入:spool 。点击“确认”按钮,打开“spool”文件夹; 在“spool” 文件夹中,双击打开“PRINTERS”文件夹; 删除“PRINTERS”文件夹中的所有文件; 回到“服务”窗口,点击左侧“启动此服务”,重新启动打印服务。 检查打印队列,确认打印任务已经被清除。 简便方法: 把下列的命令复制到一个文本文件中.

ESC打印机的控制命令

ESC打印机的控制命令 计算机能够完成数值计算、数据处理、图象设计、过程控制等工作都是在一种或多种计算机语言的指挥下进行的。同样,打印机各种部件的运行和动作,各种打印动作的实现、在各种介质上打印出图形和字符,也是由一套能为打印机所识别的语言(命令)来进行控制。通常将能完成上述功能的命令的集合成为打印机控制命令(Print Control Command)为了更好的熟知打印机控制命令,我们需先行了解打印机的数据处理流程。 二、打印机的控制命令 目前主流的打印机控制命令主要有以下三种: EPSON公司的ESC PK命令集 HP公司的PCL命令集 Adobe公司的PostScript(简称PS)命令集 ESC PK命令集是针式打印机(尤其是滚筒方式打印)领域事实上的工业标准;PCL命令集是中、低档激光打印机、喷墨机印机领域的工业标准;PS命令集则是高档排版、出版领域的应用标准。 1、名词解释 1)控制命令:对打印机进行各种处理和控制动作,并为打印机所识别的命令序列。 2)仿真;控制打印机按照某种控制命令进行工作,就称为这个控制命令的仿真。3)驱动程序;转换文件成为某种特定控制命令描述的文档,并进行输出的程序。注:驱动程序就是打印控制命令的形体表现,其本质就是按照某一控制命令的格式,将计算机的数据进行翻译和组织,并形成相应的字符和位图的序列送往打印机。 2、命令分类 打印机控制命令的种类可分为二大类:基本控制命令和扩充命令。

1)基本命令(Basic Control Code) 基本命令其实就是ASCII码中规定的具有打印功能的控制命令,它的特点是均用一个ASCII码(一个字节)代表,使用比较方便。它的数值范围如下:ASCII: 00H ~ 20H 2)扩充命令(Extension Control Command) 基本命令仅提供标准和基本的控制功能。要实现字型大小、各种修饰功能、行与列间距控制、格式设定等较复杂的控制功能,就必须使用扩充命令。扩充命令一般由两个或两个以上的字节组成,其格式有如下几种形式: Code CH Code CH1[CH2] Code CH1[CH2][Parm1 …Parm1] Code CH1[CH2][Parm1 …Parm1]CH3 Code: 控制命令的引导代码 CH: 表示控制字符 Parm: 系列参数 例: 设定图象打印方式 ASCII码: ESC * m n1 n2 十进制码: 27 42 m n1 n2 十六进制码1B 2A m n1 n2 m: 图象方式 水平密度:60 DPI ~ 360DPI 垂直密度:60 DPI ~ 360DPI 每列点数:8点~ 48点 计算公式:列数=n1+n2*256 这里:“ESC“即为该控制命令的引导代码,而“*”和“m”为表示为图象命令的控制命令,“n1,n2”则为图象的系列参数。 3)命令格式类别 作为针式打印机的控制命令类别,有如下几种序列的表示方式: * ESC序列

打印机取消打印任务不能删除的方法

打印机取消打印任务不能删除的方法 HP打印机取消不了打印任务怎么办 2008-09-17 21:59:15 来自: 孤鸿万里云 HP打印机取消不了打印任务怎么办 怎样清除无法删除的打印任务 当打印任务开始进行时,打印任务被保存在打印作业列表(也称打印队列)内。如果打印机因意外暂停,未完成打印任务,那么该任务仍在打印队列内,并且存入文件的打印池进行备份。如果不清除该任务,后面的打印任务将无法执行。 操作方法 方法一:自动清除打印队列 1. 打开打印机文件。 * Windows 98/Me/2000 操作系统 依次点击“开始”→“设置”→“打印机”。在“打印机”窗口中,用鼠标左键双击打印机的图标。 *

Windows XP 操作系统 o 依次点击“开始”→“打印机和传真”。在“打印机和传真”窗口中,用鼠标左键双击打印机图标。 o 点击“控制面板”中的“打印机和其它硬件”,点击“打印机和传真”。在“打印机和传真”窗口中,用鼠标左键双击打印机图标。 2. 在打印机队列的窗口中,点击“打印机”工具菜单。 3. 如果没有选中“暂停打印”,请选择它; 4. 再次点击“打印机”工具菜单,选择“中止所有文档”或“取消所有文档”,然后点击“是”按钮; 5. 如果队列中还存在任何剩余文档,则点击“打印机”工具菜单、选择“暂停打印”,重新开启打印任务,暂停取消打印队列; 6. 再次点击“打印机”工具菜单,选择“取消所有文档”或“中止所有文档”; 7. 如果队列中仍有文档,请断开打印机与电脑的USB 连接线,然后重新启动电脑;

当电脑重新启动后,检查打印队列,确保其已经被清除。 方法二:手动清除打印队列 在Windows NT、Windows 2000 和Windows XP 操作系统中,有时执行了上述操作,仍无法清除打印任务。此时,您需进行以下操作来中止并且重新启动打印机服务。 * Windows XP 操作系统 1. 依次点击“开始”→“控制面板”→“性能和维护”→“管理工具”→“服务”→“Print Spooler”。 2. 点击左侧“停止此服务”,停止打印机服务。 3. 依次点击“开始”→“运行”,在“运行”窗口的命令行中输入:spool。点击“确认”按钮,打开“spool”文件夹; 4. 在“spool”文件夹中,双击打开“PRINTERS”文件夹; 5. 删除“PRINTERS”文件夹中的所有文件;

C#控制打印机(直接发送打印机命令到打印机)

C#控制打印机(直接发送打印机命令到打印 机) 一个打印机控制类,很有用的,其中使用了windows api控制lpt端口,对条码打印机的控制方法如下:将打印机的命令写到一个文件里,再使用之。 ******************************************************************************* ******************************************************* //代码: // using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace LPTControls { public class LPTControls { [StructLayout(LayoutKind.Sequential)] private struct OVERLAPPED { int Internal; intInternalHigh; int Offset; intOffSetHigh; inthEvent; } [DllImport("kernel32.dll")] private static extern intCreateFile(string lpFileName, uintdwDesiredAccess, intdwShareMode, intlpSecurityAttributes, intdwCreationDisposition, intdwFlagsAndAttributes, inthTemplateFile); [DllImport("kernel32.dll")] private static extern boolWriteFile(inthFile, byte[] lpBuffer, intnNumberOfBytesToWriter, out intlpNumberOfBytesWriten, out OVERLAPPED lpOverLapped); [DllImport("kernel32.dll")] private static extern boolCloseHandle(inthObject); privateintiHandle; //打开LPT 端口 public bool Open() {

如何取消打印任务

如何取消打印任务 在进行打印操作时,由于某种原因,需要取消打印任务,停止当前的打印操作,但是对于不同型号的打印机,取消任务的方法不一样,甚至有时根本无法取消打印任务,在这种情况下有没有一种通用、高效而且可行的方法呢?下面笔者就来给大家讲解一下取消打印任务的终级解决方案。 由于打印机的型号很多,不可能一一列举,在此以打印机Canon LBP2900为例,介绍取消打印任务的方法。 工具/原料 必备的硬件设备:计算机和打印机 方法/步骤 1 如果文档正在打印过程中需要取消打印任务,则直接点击打印任务窗口中的“暂停”按钮即可取消打印任务。也可能通过点击Windows任务栏右下角的打印机图标来打开“打印任务”窗口,然后点击“暂停”按钮以暂停打印任务。

2 打开“控制面板”,依次进入“硬件和声音”-“设备和打印机”,右击“本地打印机”图标,从弹出的菜单中选择“查看正在打印的任务”,在弹出的窗口中右击欲取消的打印任务,从弹出的菜单中选择“取消”即可取消打印任务。

3 如果通过上面的方法还是无法取消打印任务,则采用切断打印机电源的方法,强行消除电脑打印缓冲区,以取消打印任务。 4 在打印机重新开机后,打印任务仍然无法取消时,就需要通过重启打印服务来解决。具体方法:右击“我的电脑”,依次选择“管理”-“服务和应用程序”下的“服务”,找到PrintSpooler,先禁用,随后再启用,通过这个方法可以解决大部分打印任务无法取消的问题。 5 通过以上的方法还是无法解决问题时,可采用这种方法:定位到“$系统根目录$:\WINDOWS\system32\spool\PRINTERS” 目录下,将所有的文件删除即可取消打印任务。

针式打印机控制命令汇总

ESC P、ESC P/K指令LQ-300K LQ-300K+ LQ-305K LQ- 580K(+) LQ-630K LQ-635K LQ- 670K+ /K+T LQ-680K /K PRO LQ- 1600KIII /KIII+ LQ-1600K4(+) LQ-1900KII(+) DLQ-3500K DLQ-3250K ASCII控制 一般指令控制功能初始化打印机ESC @ ESC @ ESC @ ESC @ ESC @ ESC @ ESC @ ESC @ ESC @ ESC @ ESC @ ESC @ ESC @ 单向打印ESC U ESC U ESC U ESC U ESC U ESC U ESC U ESC U ESC U ESC U ESC U ESC U ESC U CSF模式控制ESC EM ESC EM ESC EM ESC EM ESC EM ESC EM ESC EM ESC EM ESC EM ESC EM ESC EM 蜂鸣器BEL BEL BEL BEL BEL BEL BEL BEL BEL BEL BEL BEL BEL 删除行缓冲区CAN CAN CAN CAN CAN CAN CAN CAN CAN CAN CAN CAN CAN 退格BS BS BS BS BS BS BS BS BS BS BS BS BS 删除DEL DEL DEL DEL DEL DEL DEL DEL DEL DEL DEL DEL DEL 联机DC1 DC1 DC1 DC1 DC1 DC1 DC1 DC1 DC1 DC1 DC1 DC1 DC1 脱机DC3 DC3 DC3 DC3 DC3 DC3 DC3 DC3 DC3 DC3 DC3 DC3 DC3 打印头归位ESC < ESC < ESC < ESC < ESC < ESC < ESC < ESC < ESC < ESC < ESC < ESC < ESC < MSB控制 ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # ESC >,ESC =,ESC # 进纸/退纸控制功能换页FF FF FF FF FF FF FF FF FF FF FF FF FF 换行LF LF LF LF LF LF LF LF LF LF LF LF LF n/180英寸正向进 纸 ESC J ESC J ESC J ESC J ESC J ESC J ESC J ESC J ESC J ESC J ESC J ESC J ESC J n/180英寸反向进 纸 ESC j 设定1/8英寸行间 距 ESC 0 ESC 0 ESC 0 ESC 0 ESC 0 ESC 0 ESC 0 ESC 0 ESC 0 ESC 0 ESC 0 ESC 0 ESC 0 设定1/6英寸行间 距 ESC 2 ESC 2 ESC 2 ESC 2 ESC 2 ESC 2 ESC 2 ESC 2 ESC 2 ESC 2 ESC 2 ESC 2 ESC 2 设定n/180英寸行 间距 ESC 3 ESC 3 ESC 3 ESC 3 ESC 3 ESC 3 ESC 3 ESC 3 ESC 3 ESC 3 ESC 3 ESC 3 ESC 3 设定n/60英寸行 间距 ESC A ESC A ESC A ESC A ESC A ESC A ESC A ESC A ESC A ESC A ESC A ESC A ESC A 设定n/360英寸行 间距 ESC + ESC + ESC + ESC + ESC + ESC + ESC + ESC + ESC + ESC + ESC + ESC + ESC + 回车CR CR CR CR CR CR CR CR CR CR CR CR CR

VB使用ZPL指令控制zebra打印机案例

VB使用ZPL指令控制zebra打印机案例 Dim i As Integer, j As Integer, nCount As Integer, col_count As Long Dim zpl_head(12) As String, zpl_foot As String Dim cell_width_ini As Integer, cell_height_ini(3) As Integer Dim tmp_MAC() As String, tmp_SN() As String Dim zpl_text_MAC() As String, zpl_text_SN() As String Dim zpl_barcode_MAC() As String, zpl_barcode_SN() As String Dim cbuf As String * 21000 '************************** '设置打印开始信息 '************************** zpl_head(0) = "^XA" '起始符 zpl_head(1) = "^LH0,0" '参考点 zpl_head(2) = "^FO540,60^GB0,1850,7^FS" '竖线 zpl_head(3) = "^FO1025,60^GB0,1850,7^FS" '竖线 zpl_head(4) = "^FO10,242^GB1100,0,7^FS" '横线 zpl_head(5) = "^FO10,422^GB1100,0,7^FS" '横线 zpl_head(6) = "^FO10,602^GB1100,0,7^FS" '横线 zpl_head(7) = "^FO10,782^GB1100,0,7^FS" '横线 zpl_head(8) = "^FO10,962^GB1100,0,7^FS" '横线 zpl_head(9) = "^FO10,1152^GB1100,0,7^FS" '横线 zpl_head(10) = "^FO10,1332^GB1100,0,7^FS" '横线 zpl_head(11) = "^FO10,1512^GB1100,0,7^FS" '横线 zpl_head(12) = "^FO10,1692^GB1100,0,7^FS" '横线 '******************************* ' 计算列循环次数,各数组下标 '******************************* col_count = (Grid1.Rows - 1) / 10 + CInt(CBool((Grid1.Rows - 1) Mod 10)) * (-1) ReDim tmp_MAC(Grid1.Rows - 1) ReDim tmp_SN(Grid1.Rows - 1) ReDim zpl_text_MAC(Grid1.Rows - 1) ReDim zpl_text_SN(Grid1.Rows - 1) ReDim zpl_barcode_MAC(Grid1.Rows - 1) ReDim zpl_barcode_SN(Grid1.Rows - 1) '******************************* '设置标签体 '******************************* '单元初始X坐标 cell_width_ini = 97 For i = 1 To col_count

如何快速删除打印任务

如何快速删除打印任务 在Windows XP 操作系统下如下操作,Windows NT类似。依次点击“开始”→“控制面板”→“性能和维护”→“管理工具”→“服务”→“Print Spooler”。点击左侧“停止此服务”,停止打印机服务。依次点击“开始”→“运行”,在“运行”窗口的命令行中输入:spool 。点击“确认”按钮,打开“spool”文件夹;在“spool”文件夹中,双击打开“PRINTERS”文件夹;删除“PRINTERS”文件夹中的所有文件;回到“服务”窗口,点击左侧“启动此服务”,重新启动打印服务。如图检查打印队列,确认打印任务已经被清除。简便方法:把下列的命令复制到一个文本文件中. NET STOP SPOOLER DEL C:\WINDOWS\SYSTEM32\SPOOL\PRINTERS\*.* /F /Q NET START SPOOLER 然后把文本文件的扩展名改成bat,双击执行就OK了 通过重新启动与打印机有关的系统服务Print Spooler,就能实现快速删除打印任务的目的,可是用手工方法先停止Print Spooler服务,再启动Print Spooler 服务,这样的操作比较麻烦。为了进一步提高打印任务的删除效率,经过仔细琢磨,特意创建了一个重新启动系统服务Print Spooler的批处理文件,以后我们需要删除打印任务时,只要双击一下创建好的批处理文件,就能将打印任务快速删除掉了,下面就是该方法的具体实施步骤: 首先运行记事本之类的文本编辑程序,并在其编辑界面中输入如下字符串代码: sc stop Spooler pause sc config pooler start= auto sc start Spooler 在确认上面的代码输入无误后,依次单击记事本编辑界面中的“文件”/“保存”命令,并将上面的代码保存成一个扩展名为bat的批处理文件,假设在这里笔者将它保存为“del.bat”; 其次,为方便日后调用“del.bat”文件,我们可以为该文件创建一个快捷方式,并将该快捷方式直接拖放到系统的桌面中。日后,我们需要对打印队列中的打印任务进行删除时,就可以简单地用鼠标双击一下系统桌面中的“del.bat”文件,当该批处理文件运行结束后,打印队列中的文件也就被自动删除掉了;此时,我们可以用鼠标单击批处理程序界面同时按一下键盘上的任意按键,这样系统又会自动把暂停的系统服务Print Spooler重新启动起来,同时将该服务的运行模式设置为“自动”,日后打印机又能正常执行其他打印任务了。 当打印任务提交后,才发现打错内容了,相信大家都碰到过这种情况。 打印机无法打印,也无法删除。原因是打印机队列中有文档没有正确打印。要取消队列中没有打印的文档,是件比较麻烦的事。通常都需要先暂停打印,然

相关文档
最新文档