我将python3与win32print一起使用,如下代码。它应该删除所有打印作业,因为TotalPages>;=1。我认为所有的数据类型都是正确的。在
import time
import win32print
#----------------------------------------------------------------------
def print_job_checker():
"""
Prints out all jobs in the print queue every 5 seconds
"""
jobs = [1]
while jobs:
jobs = []
for p in win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL,
None, 1):
flags, desc, name, comment = p
phandle = win32print.OpenPrinter(name)
print_jobs = win32print.EnumJobs(phandle, 0, -1, 1)
if print_jobs:
jobs.extend(list(print_jobs))
for job in print_jobs:
print(job['TotalPages'])
if(job['TotalPages'] >= 1):
print(type(job))
win32print.SetJob(phandle, job['JobId'], 1, job, win32print.JOB_CONTROL_DELETE)
win32print.ClosePrinter(phandle)
time.sleep(0.25)
print ("No more jobs!")
#----------------------------------------------------------------------
if __name__ == "__main__":
while True:
print_job_checker()
当我运行它显示这样的错误。在
File "C:/Users/test_printer.py", line 37, in print_job_checker win32print.SetJob(phandle, job['JobId'], 1, job, win32print.JOB_CONTROL_DELETE)
error: (1804, 'SetJob', 'The specified datatype is invalid.')
既然你是在删除而不是改变工作属性,那么试试这个
以下参数已更改:
级别=0
pPrinter=无
相关问题 更多 >
编程相关推荐