Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Printing 对于windows 7上的hp打印机,作业信息2的PageSprint字段不可靠,值取决于打印处理器_Printing_Windows 7_Driver_Print Spooler Api - Fatal编程技术网

Printing 对于windows 7上的hp打印机,作业信息2的PageSprint字段不可靠,值取决于打印处理器

Printing 对于windows 7上的hp打印机,作业信息2的PageSprint字段不可靠,值取决于打印处理器,printing,windows-7,driver,print-spooler-api,Printing,Windows 7,Driver,Print Spooler Api,对于windows 7上的hp打印机,作业信息2的PageSprint字段不可靠,值取决于打印处理器 我正在开发一个打印监视器,对于hp printer PagesPrinted不可靠,et有错误的值您打印机的打印驱动程序显然正在使用错误的页面计数值调用SetJob。你可能对此无能为力。因此,获得准确页数的唯一方法是解析打印数据流并自己计算页数。有问题的打印机使用PCL。幸运的是,sourceforge提供了一个开放源代码,您可以使用它来解析PCL。尽管此解决方案比简单地调用GetJob更复杂,

对于windows 7上的hp打印机,作业信息2的PageSprint字段不可靠,值取决于打印处理器


我正在开发一个打印监视器,对于hp printer PagesPrinted不可靠,et有错误的值

您打印机的打印驱动程序显然正在使用错误的页面计数值调用SetJob。你可能对此无能为力。因此,获得准确页数的唯一方法是解析打印数据流并自己计算页数。有问题的打印机使用PCL。幸运的是,sourceforge提供了一个开放源代码,您可以使用它来解析PCL。尽管此解决方案比简单地调用GetJob更复杂,但它应能可靠地适用于所有PCL打印机。支持Postscript打印机也可以以类似的方式完成,而且解析要简单得多,因为Postscript将页面计数直接放在数据流中。

有人在该字段中使用不正确的值调用SetJob。很可能是司机。但是,由于端口监视器负责将打印机数据传输到打印机,因此它应该能够自行确定页数。然而,我不明白你的问题到底是什么。当我打印一份pdf文档:2页的文档,每张2页,3份副本,在通知中,我收到TotalPages=1(正确值)和PagesPrinted=3(错误值,应为1,如msdn中所述,并发送给其他打印机Lexmark、Xerox…),打印机在windows 7上共享,在另一个windows 7上使用,当我重复相同的测试页面Sprinted=12、24且始终TotalPages=1(正确值)时,对于Hp打印机,它作为字段不可靠,对于其他类型的打印机,我没有这种情况。我使用此API EnumPrinters、OpenPrinter、FindFirstInterchangeNotification、,WaitForMultipleObjects、WaitForSingleObject、FindNextPrinterChangeNotification:这是我的windows函数调用序列