python控制打印机打印网页_win32下利用python操作printer

在win32下操作printer:1)import win32print2) 获得默认打印机名:>>> win32print.GetDefaultPrinter()'Canon LBP-800'3)打开一个指定的打印机并获得其句柄>>> handle = win32print.OpenPrinter('Canon LBP-800')4)获得一个指定的打印机句柄所...
摘要由CSDN通过智能技术生成

在win32下操作printer:

1)import win32print

2) 获得默认打印机名:

>>> win32print.GetDefaultPrinter()

'Canon LBP-800'

3)打开一个指定的打印机并获得其句柄

>>> handle = win32print.OpenPrinter('Canon LBP-800')

4)获得一个指定的打印机句柄所对应的打印机的信息

>>> win32print.GetPrinter(handle)

(None, 'Canon LBP-800', '', 'LPT1:', 'Canon LBP-800', '', '', None, '', 'W

inPrint', 'RAW', '', None, 2624, 1, 0, 0, 0, 0, 0, 0)

5)关闭打印机

>>> win32print.ClosePrinter(handle)

5)枚举打印机,呵呵,看看MSDN,琢磨一下flag对应的几个位

>>> win32print.EnumPrinters(2)

((8388608, '\264\253\325\346,Windows NT Fax Driver,', '\264\253\325\346',

''), (8388608, 'FinePrint 2000,FinePrint 2000,', 'FinePrint 2000', '

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要拦截打印机打印,你可以通过Python的 win32print 模块来实现。具体步骤如下: 1. 首先,你需要安装 pywin32 模块。你可以在命令行中输入以下命令进行安装: ``` pip install pywin32 ``` 2. 然后,你需要获取打印机的句柄。你可以使用 win32print.OpenPrinter() 函数来获取打印机句柄。例如: ```python import win32print printer_name = win32print.GetDefaultPrinter() printer_handle = win32print.OpenPrinter(printer_name) ``` 这里使用了 GetDefaultPrinter() 函数来获取默认打印机的名称,然后使用 OpenPrinter() 函数来获取打印机的句柄。 3. 接下来,你需要设置一个回调函数来处理打印任务的数据。你可以使用 win32print.SetPrinter() 函数来设置回调函数。例如: ```python def print_callback(printer_handle, job_id, event_type, status, status_string): if event_type == win32print.PRINTER_EVENT_DOCUMENT: print_data = win32print.ReadPrinter(printer_handle) # 在这里对打印数据进行处理 # ... win32print.ClosePrinter(printer_handle) win32print.SetPrinter(printer_handle, 0, None, win32print.PRINTER_CONTROL_PAUSE) win32print.SetPrinter(printer_handle, win32print.PRINTER_CONTROL_RESUME, None, 0) win32print.WaitForSingleObject(printer_handle, win32print.INFINITE) ``` 这里定义了一个 print_callback() 函数来处理打印任务的数据,其中 event_type 参数指示事件的类型,如果是 PRINTER_EVENT_DOCUMENT 类型,则说明有新的打印任务到达,可以通过 ReadPrinter() 函数来读取打印数据。 4. 最后,你需要等待打印任务完成。你可以使用 win32print.WaitForSingleObject() 函数来等待打印任务完成。例如: ```python win32print.WaitForSingleObject(printer_handle, win32print.INFINITE) ``` 这里使用了 INFINITE 参数,表示等待时间无限长,直到打印任务完成。 总的来说,以上就是通过 Python 拦截打印机打印的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值