精华内容
下载资源
问答
  • 由于打印机千差万别,打印机执行的标准也不一样,LODOP获取的打印状态码也可能不同,安装了个打印机驱动实际测试一下...1.该打印机队列里该任务呈现的错误-正在打印 用LODOP获取的打印状态码8210,状态码含义 ...

    由于打印机千差万别,打印机执行的标准也不一样,LODOP获取的打印状态码也可能不同,安装了个打印机驱动实际测试一下,测试的打印机驱动是Brother Color Type3 Class Driver。

    用LODOP获取打印机状态码,和打印机队列的状态对比一下,分别是打印机错误,正在排队,和脱机。
    1.该打印机队列里该任务呈现的是:错误-正在打印
    用LODOP获取的打印状态码8210,状态码含义是 错误-正在打印
    LODOP获取的和打印机队列一致。
    2.该打印机队列里该任务呈现的是:状态是空,但是有打印任务,进入了队列,正在排队
    用LODOP获取的打印状态码0,状态码含义是 进入队列
    LODOP获取的和打印机队列一致。
    3.该打印机队列里该任务呈现的是:打印机脱机(手动设置了该打印机的脱机状态)
    用LODOP获取的打印状态码0,状态码含义是 进入队列
    LODOP获取的和打印机队列一致,但是没有获取到脱机状态。

    所以用LODOP获取某种打印机的状态码,建议实际测试一下,如果状态码不正确,应该是该打印机的标准不一样,如果想要获取打印成功,可以判断job不在队列,或直接判断打印返回值加入队列算成功,关于打印成功,这两种,可查看本博客的另一篇博文:

    注意:加上这句,LODOP.SET_PRINT_MODE("CATCH_PRINT_STATUS",true);,PRINTA的返回值才会是job代码。不加这句,可以直接判断PRINTA的返回值,通过该语句是否执行加入队列,这种简单的方法判断打印成功。简单方法:  

    LODOP获取打印成功,是否加入队列

    测试代码:

    如本文中,获取的状态码为8210,获取的状态码含义是 错误-正在打印。
    状态码是一个枚举组合值,是数字合计值。例如:1-已暂停,2-错误,4-正删除,8-进入队列,16-正在打印........等
    状态码除以1024,取余数,可以得到合计值,然后根据合计值可以对照信息找到状态码含义,LODOP本身可以直接获取状态码含义,可以直接获取本文的这个状态码含义。
    8210/1024=8.017......(用电脑自带的计算器算的结果)
    8*1024=8192(可以整除出来的数值)
    8210-8192=18(得到的余数)
    18=2+16=错误+正在打印。所以该状态码代表的含义是错误,正在打印。

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>WEB打印控件LODOP</title>
    <script language="javascript" src="LodopFuncs.js"></script>
    </head>
    <body>
    <a href="javascript:prn1_preview()">获取打印job代码</a>
    <input type="text" id="T1" size="20" value=""><br>
    <a href="javascript:prn2_preview()">获取打印状态码</a>
    <input type="text" id="T2" size="20" value=""><br>
    <a href="javascript:prn3_preview()">获取打印状态码含义</a>
    <input type="text" id="T3" size="20" value=""><br>
    <script language="javascript" type="text/javascript">   
            var LODOP; //声明为全局变量 
        function prn1_preview() {//获取job代码
            LODOP=getLodop();  
            LODOP.PRINT_INIT("");
            LODOP.ADD_PRINT_TEXT(50,231,260,39,"一个文本");
            LODOP.SET_PRINT_MODE("CATCH_PRINT_STATUS",true);
            if (LODOP.CVERSION) {
                LODOP.On_Return=function(TaskID,Value){document.getElementById('T1').value=Value;};
                LODOP.PRINTA();
            } else document.getElementById('T1').value=LODOP.PRINTA();
        };
        function prn2_preview() {//获取打印状态码
              LODOP=getLodop(); 
            if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){document.getElementById('T2').value=Value;}; 
            var stResult=LODOP.GET_VALUE("PRINT_STATUS_ID",document.getElementById('T1').value);
            if (!LODOP.CVERSION) document.getElementById('T2').value=stResult; 
        };
        function prn3_preview() {//获取该打印状态码的含义
              LODOP=getLodop(); 
            if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){document.getElementById('T3').value=Value;}; 
            var stResult=LODOP.GET_VALUE("PRINT_STATUS_TEXT",document.getElementById('T1').value);
            if (!LODOP.CVERSION) document.getElementById('T3').value=stResult; 
        };
    </script> 
    </body>

     

    转载于:https://www.cnblogs.com/huaxie/p/10174903.html

    展开全文
  • 打印机无法打印-常见故障总结

    千次阅读 2018-07-16 14:23:33
    打印机无法打印原因有许多,可能服务异常关闭了,可能驱动过时了,本文将总结作者在生活中所遇见的问题,希望能帮助到读者。可能不太全面,但是会不断更新。...2、打印机队列状态-打印错误打印机连...

    打印机无法打印原因有许多,可能是服务异常关闭了,可能是驱动过时了,本文将总结作者在生活中所遇见的问题,希望能帮助到读者。可能不太全面,但是会不断更新。


    一、USB打印支持是较旧的USB设备,可能不兼容USB3.0

    按现在时间来看,遇到这个问题机率不大。
    原因:
    系统与打印机不兼容,有时打印机正常使用的,系统自动更新(你可能不知道)后就不能使用了。

    办法:

    1、只需要更新系统即可解决(别问我如何更新系统,一般没有关闭更新服务,开机都会自动更新)。

    2、更新打印机驱动,别去第三方网站下载(可能是过时的),上官网下载指定型号的驱动即可

    二、打印机队列状态-打印错误

    打印机连接正常的,但是加入队列后打印状态异常

    原因:

    这个原因不清楚,应该是打印服务器内部错误吧。
    办法:
    1、打开服务,按下windows键+c,输入内容sevices.msc

    2、找到Print Spooler,重启该服务

    3、重启电脑

    可参考:https://jingyan.baidu.com/article/f7ff0bfc78b7502e27bb134a.html

    三、打印机暂停

    有时候打印机不知道怎么被暂停了

    办法:

    打印队列窗口->左上角的打印机->取消勾选“暂停打印机”

    展开全文
  • 关于打印机状态的获取

    万次阅读 2014-05-25 00:43:28
    本文关于打印机状态获取方法分析,在非PC环境上实现了打印已经够艰辛,但是如果想实现的更人性化一些,错误状态必不可少。

            关于这个需求很早就考虑了,一直没敢下手,也不是不敢,是之前下过一次手但是没有成功。一直过了几个月腾出一些空闲来解决这个问题。另外说明一下,截止到目前对于这个需求我还没有一个完全的解决方案。这篇也只是捋下思绪。

            关于打印机状态的问题我在stackoverflow上也作过提问,结果问题就被删除了,原因有二有人说这个问题是硬件上的问题,所以不在stackoverflow所讨论的范围。另一个或许是自己的英文着实烂的不行了,问题都解释不清楚。

            由于一直没有死心,所以在平时无聊的时候也会掏出手机搜索一番,当时唯一的收获是参考文档[1]中提到的USBHostPrinterGetStatus(),这个神奇的函数没有写任何来源,但作者将其描述成是可以获取打印机状态的,我着实有那么一点兴奋。但是苦于没有来源,有点不知所措。不过我还是将其作为一个方向进行了深挖了的。顺便找到了[3]-是和[1]差不多的英文版本,以及[2]这个现存的这个函数。从总体来说Linux中并没有这个函数,不知道写论文的那个是不是先有论文又做的实验。这个似乎是一个裸机程序,在我找到[5]这样专业文档的时候,这个几个状态是USB通信协议中就已经规定了的。更加确定这个函数目前深究下去是一个死路,不过以后做裸机的时候可以重新了解。

            以上是走过的错路,下面说下我这次走能的小路:1.Linux中标准的USB打印机驱动着手;2.HP Device Manager入手。前后者都小有所获,以下逐个来分析。逐个分析前先把打印机在Windows下的各种问题的状态列表记录一下,话说收集这个可不是一个简单的事,首先是锁定打印机型号然后制造这种故障,使得PC上能够显示出对于的状态对话框。(到目前为至12-14还并不是官方的文字,因为制造该故障的条件一直不具备)

     

    NO

    中文

    英文

    limit

    1

    无法与打印机通信

    Unable to Communicate with Printer

    E

    2

    出纸盒已关闭

    Output Tray Closed

    E

    3

    门己打开

    Door Open

    E

    4

    缺纸

    Out of Paper

    E

    5

    卡纸

    Paper Jam

    E

    6

    墨盒故障-黑色

    Ink Cartridge Failure

    E

    7

    墨盒故障-三色

    -

    E

    8

    墨盒故障-黑色-三色

    -

    E

    9

    墨盒丢失

    Ink Cartrideges Missing

    E

    10

    单墨盒模式-缺黑色

    Single Ink Cartridge Mode

    W

    11

    单墨盒模式-缺彩色

    -

    W

    12

    无墨  黑色

    x

    E

    13

    无墨  彩色

    x

    E

    14

    无墨  黑色-彩色

    x

    E

    15

    已经安装HP保护墨盒

    HP Protected Cartridge Installed

    I

    16

    检测到使用过的或仿制墨盒

    Used or Counterfeit Cartridge Detected

    I

    (着实不知用wps转换成的mht格式再粘贴到blog上后表格会变成虚的)

    方向1是从usblp.c中的驱动着手

    结合打印机内核驱动源码usblp.c以及Usb协议[5]规定打印机状态:

     

    驱动的具体实现是在ioctl方法中的LPGETSTATUS命令中返回的状态,经过实验确实能获得一个比较显著的状态Out of Paper/Paper Empty这样一个状态,应用层的代码如下:

    #include <stdio.h>

    #include <sys/types.h>

    #include <unistd.h>

    #include <sys/wait.h>

    #include <dirent.h>

    #include <string.h>

    #include <signal.h>

    #include <fcntl.h>

    #include <sys/ioctl.h>

    #include <linux/lp.h>

     

    void getDeviceStatus(int fd) {

        if(fd < 0)

            return;

        int status = 0;

        ioctl(fd, LPGETSTATUS, &status);

        printf("%x\n", status);

        printf("Hello world\n");

    }

     

    int main()

    {

        int fd = open("/dev/usb/lp0", O_RDWR);

        getDeviceStatus(fd);

        close(fd);

        return 0;

    }


    不过遗憾的是,这个状态码的规律是这样的:正常0x18;缺纸 0x38;其它统统是0x10。等于我现在只拿到了一个状态。我的高兴劲头仅仅持续了几分钟。

    方向2HP Device Manager的源码入手

    如下图,该软件可以显示更多的状态,且还是开源的hplib。从实验得出该神器可以获得以上列出的每个状态。

    推导一下这个神器的真实身份:HP Device Manager -> hp-boolbox -> hplib最终确定了hplib。hplib的架构是这样的:


    Hplip的源码中有这么一段,用到libusb.可以获取打印机状态:

    static int device_status(int fd, unsigned int *status)

    {

        libusb_device_handle *hd;

        int interface;

        int len, stat=1;

        unsigned char byte;

     

        hd = fd_table[fd].hd;

        interface = fd_table[fd].interface;

     

        if (hd == NULL)

        {

            BUG("invalid device_status state\n");

            goto bugout;

        }

     

        len = libusb_control_transfer(hd,

                LIBUSB_ENDPOINT_IN | LIBUSB_REQUEST_TYPE_CLASS | LIBUSB_RECIPIENT_INTERFACE/* bmRequestType */

                LIBUSB_REQUEST_CLEAR_FEATURE,        /* bRequest */

                0,        /* wValue */

                interface, /* wIndex */

                &byte, 1, LIBUSB_CONTROL_REQ_TIMEOUT);

     

        if (len < 0)

        {

            BUG("invalid device_status: %m\n");

            goto bugout;

        }

     

        *status = (unsigned int)byte;

        stat = 0;

        DBG("read actual device_status successfully fd=%d\n", fd);

     

    bugout:

        return stat;

    }


    就这几行代码,但却难住了我,还是静下心来看看<libusb Developers Guide>。回头再来继续。从hplib追踪到APDK(hp官方支持的非PC平台的打印驱动),其中包含了与打印通信以及打印机的错误代码。只Google出这么一个好的资料《APDK Developers Guide Reference Manual》。这个《hpmud》也相当好,可以清晰的显示出hplip源码结构。

    $ sudo apt-get install libhpmud-dev

    标准头文件hpmud.h,基于这个开发。Hp.c就是一个独立的基于libhpmud的程序。我在libhpmud中添加的这个调试信息在运行hp.c的时候可以看到,但是在运行hp-toolbox的时候根本没有反应,又有点怀疑,它的底层没有用libhpmud这个库。

    如果能将Door open这句话从打印机到屏幕的流程走通,这个状态的问题基本就可以宣告解决了。但是这个只是设想,真正实现起来并没有那么容易。这是一个开篇。 


    参考文档:

    1.《基于Android平台的无线打印模块设计

    2.USBHostPrinterGetStatus 

    3.USB Printer Class on an Embedded Host

    4.How to retrieve USB printer status?

    5.Universal Serial Bus Device Class Definition for Printing Devices

    展开全文
  • 局域网内共享打印机非常方便,但是在连接中经常遇到问题,其中出现错误代码0x80070035的概率非常之高! 1、必须确保有关打印功能的相关服务都处于自动启动状态,重点检查TCP/IP NetBIOS Helper,Workstation,...

    局域网内共享打印机非常方便,但是在连接中经常遇到问题,其中出现错误代码0x80070035的概率非常之高!

    1、必须确保有关打印功能的相关服务都处于自动启动状态,重点检查TCP/IP NetBIOS Helper,Workstation,Remote Desktop Configuration,Print Spooler这几个服务。打开服务的方法是win+R调出运行窗口,输入services.msc

    2、对连接打印机的电脑进行设置

    1)连接好打印机,确保可以正常打印;

    2)在打印机属性中进行共享设置;

    3、非常重要的一步,对连接打印机的电脑进行权限设置

    1)启用guest账户,打开计算机管理(win+R调出运行窗口,输入compmgmt.msc),取消“账户已禁用”前的对勾。这是因为局域网内其他电脑发起的打印请求均以来宾身份进行操作,一些教程中错误地引导网友在组策略中禁用来宾账户,这和电脑的共享原理是相悖的

    2)打开组策略页面(win+R调出运行窗口,输入gpedit.msc),定位到 “Windows设置”-“安全设置”-“本地策略”

    a)在 “用户权限分配” 中把“拒绝从网络访问访问这台计算机”中的guest删掉;

    b)在“安全选项”中把“账户:来宾账户状态”“账户:使用空密码......”的设置项均保持为“已启用”状态。

    3)建议不要对其他组策略选项进行修改,保持默认即可

    4、连接共享打印机

    直接win+R调出运行窗口,输入\\192.168.x.x即可看到共享的打印机,进行连接吧!

    5、总结,以上操作是结合实机操作验证的,试验平台为HP laserjet1020,打印机连接的电脑为WinXP,局域网内的电脑有WinXP,win7,win10,均可正常连接。楼主遇到这个问题在网上搜索之后看了很多教程,其中有些内容相互矛盾,最终也没有解决,因此发此经验,希望能提供上帮助!

    注意事项:打印机主机(Win10)的防火墙已设为关闭状态。

     

    转载于:https://www.cnblogs.com/gu-bin/p/11288740.html

    展开全文
  • 所有的安装的打印机脱机状态,在有打印功能的程序里也无法选取打印机。 删除打印机后重新安装打印机会提示“打印处理器不存在。” 大多数情况下打印机出现问题都是打印服务printer spooler没有正常启动造成的,...
  • 佳博gp7665kii打印机驱动一款专为点阵式打印机gp7645kii打造的打印机驱动程序,如果你遇到了打印机与电脑不能正常的进行连接或电脑不能识别打印机的问题,下载此驱动可以帮你解决问题,让打印机恢复正常的工作,...
  • 如果有显示打印机名称,那么问题有可能网络连接错误或者打印机故障; 如果电脑能正常上网说明网络连接没有问题,还可以通过命令测试电脑与网络打印机是否联机状态:按Win+R打开运行,输入cmd并回车; .....
  • 刷新后要重新启打印机,以后无论这个机器在任何一台电脑上使用都不用再刷新了,但还是有一些问题,比如打印一段时间后,有两个灯交替闪烁(不是废墨需要清零),这时只要把打印机恢复到普通状态,再刷新成永久状态...
  • 出现这种问题的主要原因连接的默认打印机无法使用,我的就是网络打印机脱机了。一开始真以为内存不够,把所有应用程序都关了也...后来一看打印是脱机状态,才明白原因。 解决方法:  删除打印机,重新连接即可。
  • 1.错误-正在打印 怎么解决这个是打印机队列的状态,排查下电脑和打印机的连线是否正常,是否打印机脱机。用xps或pdf虚拟打印机测试下,虚拟打印机正常,说明和打印机打印机驱动有关。 用xps或pdf虚拟打印机测试下...
  • 此软件在条码打印进接收了错误的指令后导致出现故障的修复,刷新之后能打印机恢复初始状态
  • 碳粉盒 Get-Toner一个简单的Powershell脚本,用于关注碳粉量。 特征 自动从打印服务器获取打印机 路线图 通过打印机IP地址列表 通过打印机名称列表 错误处理 如何用于自动监控的示例
  • 最近碰到一个客户,只要用打印机打印文件的时候...然后我考虑可能有病毒,因为有一些病毒会监视系统的打印机状态,只要一启动打印机打印,则病毒就会发作,导致系统蓝屏.想到这里,我用系统的卡巴斯基扫了下内存...
  • 有些由于我们对激光打印机工作原理及性能不太熟悉,因此在操作时没有将其调整到最佳状态或还处于错误状态下,还有使用材料不符合规定等,使输出效果不佳,这就是我们称之为“不是故障的故障”。它一般不影响打印机...
  • 打印机在关机状态下: 1、先按住“停止/重置”键,再按“电源开关”键开机; 2、当电源指示灯呈绿色亮起时,松开“停止/重置”键; 3、接着按“停止/重置”键5次,然后同时松开“电源开关”键和“停止/重置”键 4、...
  • Microsoft Windows 系统错误代码简单分析:  0000 操作已成功完成。  0001 错误的函数。  0002 系统找不到指定的文件。  0003 系统找不到指定的路径。  0004 系统无法打开文件。  0005 拒绝访问。...
  • windows蓝屏错误代码

    2010-11-18 22:27:50
    windows蓝屏错误代码 1 0×00000001 不正确的函数。 2 0×00000002 系统找不到指定的档案。 3 0×00000003 系统找不到指定的路径。 4 0×00000004 系统无法开启档案。 5 0×00000005 拒绝存取。 6 0×00000006 无效...
  • 设备指检测到的可用打印机,机器指在Cura中添加的打印机。 优秀的开发者博客 打印机 从DevBlog2开始的状态字符串: 闲 印刷 错误 保养 开机 打印作业 Assigned_to!=无激活状态 setPrintJobState发送“打印”...
  • 先关闭打印机电源,给打印机装3张A4复印纸,然后准备让打印机进入维修状态: 1、先按住 停止/重置 键,然后按 <电源>键 开机(别松开)。 2、按 <电源>键 不放手的同时,松开 <停止/重置> 键(此时电源键还是按住不放...
  • 3220清零工具

    2014-07-21 12:40:51
    原因:打印机厂商为了循环自己的利益,使此款打印机的粉盒上安装了计数芯片,计录你的打印机打印纸张的数量,该芯片和打印机内部程序紧密连接,一旦计数器到一定的数量,计数器会认为这个打印的数量够用完一个粉盒里...
  • 佳能E500-E518清零软件

    热门讨论 2013-04-01 20:55:19
    打印机进入维修状态 1、先按着 停止/重置键,然后按 电源键 开机(别松开)。 2、等打印机启动,按住 电源键 不要放手,然后松开 停止/重置 键。 3、然后再按两下 停止/重置键。同时松开 电源健和停止/重置...
  • canon MP259清零软件

    2018-12-27 14:11:13
    (如果电脑找不到新硬件,清零软件无法使用的)点“EEPROM”键(如果显示错误 比如 002 ,点确定即可)点“Main”键进行废墨计数器清零(打印机放一张纸,会打印出D=000.0,表示清零成功)关打印机重启,测试...
  • 佳能MP288清零软件

    2013-03-16 09:37:04
    打印机进入维修状态 1、先按着 停止/重置键,然后按 电源键 开机(别松开)。 2、等打印机启动,按住 电源键 不要放手,然后松开 停止/重置 键。 3、然后再按两下 停止/重置键。同时松开 电源健和停止/重置...
  • 11 0x0000000B 尝试加载一个格式错误的程序。 12 0x0000000C 存取码错误。 13 0x0000000D 资料错误。 14 0x0000000E 储存体空间不够,无法完成这项作业。 15 0x0000000F 系统找不到指定的磁盘驱动器。 16 0x...
  • MP259清零软件

    2013-02-27 16:59:33
    首先需要: 打印机先进入维修状态: 1、先按着 停止/重置键,然后按 电源键 开机(别松开)。 2、等打印机启动,按住 电源键 不要放手,然后松开 停止/重置 键。 3、然后再按两下 停止/重置键。同时松开 电源健和...
  • 佳能mp259费墨清零

    2011-01-23 22:12:21
    打印机进入维修状态 1、先按着 停止/重置键,然后按 电源键 开机(别松开)。 2、等打印机启动,按住 电源键 不要放手,然后松开 停止/重置 键。 3、然后再按两下 停止/重置键。同时松开 电源健和停止/重置...
  • 先运行清零软件,然后操作打印机,让打印机进入维修状态: 1、先按着<停止/重置>键,然后按<电源>键,开机(别松开) 2、等打印机启动,当电源指示灯呈绿色亮起时,按住<电源>键不要放手,然后松开<停止/重置>键。 3、...
  • 258清零工具

    2013-05-18 09:35:38
    打印机进入维修状态 1、先按着 停止/重置键,然后按 电源键 开机(别松开)。 2、等打印机启动,按住 电源键 不要放手,然后松开 停止/重置 键。 3、然后再按两下 停止/重置键。同时松开 电源健和停止/重置 键,...
  • 先运行清零软件,然后操作打印机,让打印机进入维修状态: 1、先按着<停止/重置>键,然后按<电源>键,开机(别松开) 2、等打印机启动,当电源指示灯呈绿色亮起时,按住<电源>键不要放手,然后松开<停止/重置>键。 3...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 145
精华内容 58
关键字:

打印机打印状态是错误