打印机有打印任务但不工作是为啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打印机有打印任务但不工作是为啥?相关的知识,希望对你有一定的参考价值。
参考技术A1、如果打印机还是不能正常打印,先关闭打印机电源,然后重新启动电脑。这样操作能够让电脑处于一个正常的使用环境中。重启电脑后再次发送打印任务,一般就能正常打印了。
2、清除打印任务
由于打印机脱机或打印后台服务程序处理失败而未能够打印的任务,会停留在打印任务列表中,导致打印队列堵塞无法正常打印。建议清除未完成的打印作业。
3、恢复打印状态
打印机处于“脱机”、“暂停”状态会导致打印机无法正常打印。取消所有文档菜单项,需要分别点击对应的菜单项恢复正常打印状态。
4、检查USB连接线
USB连接线不正常会导致发送打印任务后无法打印或者打印任务自动消失。由于激光打印机需要稳定的电压环境才能保证任务正常进行,电脑前置USB端口会引起供电不足,建议连接电脑主板的USB端口。
随机附带的USB连接线是1.5米,USB连接线过长会造成通讯问题,使打印机不能接收打印任务,建议USB接线长度不要超过3米。如果检查USB连接线后发送打印任务仍然自动消失,请重新安装驱动程序。完成清除打印任务、恢复打印状态、检查打印机端口的操作后,可以尝试再次发送打印务。
5、重新安装驱动程序
没有正确安装驱动程序会导致发送打印任务后无法打印或者打印任务自动消失。 在同一系统中多次安装驱动程序或者没有删除先前安装的驱动程序,都会导致驱动程序安装失败,打印机不能够打印,所以并不是安装驱动程序后就一定能够正常打印。
6、尝试更换应用程序
建议尝试更换电脑或者使用“记事本”程序进行打印,如果能够正常打印,说明打印机不存在问题,可能是使用的应用软件或者电脑系统存在问题。
扩展资料:
打印机常见故障检修:
1、打印机有打印动作,但是不能打印字符。
诊断与处理办法:这是因为打印机喷头产生了问题,可能是喷头位置安装不当,建议先取下打印喷头,之后再重新安装。
2、打印机有打印动作,但是打印出字符缺点少划
诊断与处理办法:在关机状态下打开顶盖,之后取下喷头。使用脱脂棉蘸酒精轻轻擦洗喷头和底座接触面,在酒精挥发之后安装好喷头就可以了。
3、打印时一次送入多张打印纸
诊断与处理办法:打印纸不符合要求,纸张粘在一起,将黏在一起的纸张分开,重新装入。将进纸盘中的纸张取出一些。
4、打印机不能拾取进纸匣中的纸张、卡纸
诊断与处理办法:进纸匣中的纸张没有贴着送纸器,应将打印纸向里推。纸张的皱折、卷曲或纸边不整齐,使得纸夹在打印机中,出现卡纸现象。
为啥 gdb 以这种方式打印寄存器值
【中文标题】为啥 gdb 以这种方式打印寄存器值【英文标题】:Why is gdb printing registers values in that way为什么 gdb 以这种方式打印寄存器值 【发布时间】:2017-03-29 04:15:26 【问题描述】:所以我有一个任务,我必须使用 32 位寄存器比较 128 位数字。所以我考虑检查每一位(从左边开始),并将其与其他数字进行比较。我有这种情况:
我有一个.txt
文件,其中写入了两个16
-byte 数字(没有空格或换行符),如下所示:
00000000000000010000000000000003
我使用系统调用(x86
不是 64 位)读取它们并存储在 2 个缓冲区中。当我想从他们那里获取一个字节时,我会这样做:
movl $15, %eax
addl $NUMBER1, %eax
movzbl (%eax), %eax
所以现在我在%eax
中有该数字的最后一个字节(索引当然从零开始)。然后我去:
btl $0, %eax
。
所以在这种情况下应该很容易。我在 eax 中存储了一个字节 1
。我检查它的第一位(当然是从右侧),所以 32 位 1
= 000000000000000000000000000000001
,所以我应该在 carry flag
中得到 1。我用jc carry_1
检查它——当然,它有效。但后来,我试图检查其他东西。因为显然我不应该比较从最低有效数字开始的两个数字,我应该从左边开始。所以我选择btl $31, %eax
,是的,当然在这种情况下,我在进位标志中得到0
。所以我只是想检查一下我的%eax
的外观,以确保我没有意外得到任何东西。
所以在 gdb 中我启动了我的可执行文件。我到了movzbl
的那条线,我已经通过了那条线。现在是时候检查了:
print /t $eax
。我虽然会得到:000000000000000000000000000000001
,但没有。我看到的东西:
33 movzbl (%eax), %eax
(gdb) s
34 btl $31, %eax
(gdb) print /t $eax
$1 = 110001
那么为什么是110001
?当我检查3
时,它是110011
,所以结尾是正确的,但是开头的11
呢?我的意思是它肯定不是来自twos complement
的符号位(因为只有一个 + 它会为零,因为我的数字是正数)。那你知道是什么吗?
我正在使用 as --32
和 ld -melf_i1386
在 Manjaro 64 位上编译它
【问题讨论】:
那个“16 字节数字”看起来更像是 32 字节长的 ASCII 字符串,可能代表十六进制编码(如"12AB"
表示正确转换后的值 0x12AB
)。当您必须比较它们时,您可以将它们作为字符串进行比较,无需将它们转换为数字,ASCII字符保留了数值的所有重要特征,例如'0' < '1' < '9' < 'A' < 'F'
,所以如果两个数字都是带有前导零,32 个字符长,然后仅按字符比较 char 会以无符号方式判断哪个更少/更大/相等。而且你不需要逐位比较,dword by dword cmp
就可以了。
cmp
部分解释...为简化起见,我将仅比较 8 个字符长的字符串 "01234567" vs "0123456A"
-> 当您加载两个字符串的前 4 个字节时,您将获得值 0x33323130
, cmp
将以 ZF=1(“等于”)结尾。最后 4 个字节将是 0x37363534
与 0x41363534
,所以 cmp
会告诉第二个 num 是“高于”(正确,偶然)。我很好地发现自己在撒谎,因为字符串是“big endian”和 x86 “little endian”,"0100" vs "0010"
将以0x30303130 vs 0x30313030
结尾 => 第二个“上面” => 错误答案。所以在ASCII中你必须cmp
一个字符一个字符。 Dword 与 num 一起使用。值。
【参考方案1】:
那为什么是 110001?
您遗漏了代码的重要部分,例如从文本文件中读取数字的部分。但是您似乎很可能只是读取了所有字符并将它们存储在某个地方。字符 '1'
的 ASCII 码是 49,二进制(/t
开关给你二进制)是110001
。所以如果你在内存中得到的是字符'1'
,那么这个输出完全是预期的。
【讨论】:
我刚刚注意到我是智障。你是完全正确的,我已经解决了这个问题,我来这里是为了说我很愚蠢,但你更快 :D 谢谢以上是关于打印机有打印任务但不工作是为啥?的主要内容,如果未能解决你的问题,请参考以下文章