qq_45432484 2021-04-25 10:35 采纳率: 0%
浏览 71

用Python抓取与电脑相连接的打印机状态,当打印文件时 ,可以抓取到文件的题目 ,时间,以及是谁打

用Python抓取与电脑相连接的打印机状态,当打印文件时 ,可以抓取到文件的题目 ,时间,以及是谁打印的
  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-14 21:47
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    为了实现抓取与电脑相连接的打印机状态并获取打印文件的标题、时间以及打印者信息,我们可以通过以下步骤进行实现:
    1. 首先,我们需要安装Python中与打印机相关的库。在Python中,有一个名为win32print的库可以访问Windows系统中的打印机状态信息。
    2. 使用EnumPrinters函数获取系统中所有的打印机及其状态信息。
    3. 通过监视打印队列中的文件来实现实时抓取。可以通过定时地检查打印队列中的文件来获取文件的题目、时间以及打印者信息。 以下是一个简单的示例代码,演示如何抓取打印机状态及相关信息:
    import win32print
    import win32con
    import time
    # 获取所有打印机信息
    def get_printers():
        printers = win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL, None, 1)
        return printers
    # 监视打印队列
    def monitor_print_queue(printer_name):
        print_queue = win32print.OpenPrinter(printer_name)
        try:
            while True:
                jobs = win32print.EnumJobs(print_queue, 0, -1, 1)
                for job in jobs:
                    job_info = win32print.GetJob(print_queue, job['JobId'], 1)
                    title = job_info['pDocument']
                    time = job_info['Submitted']
                    user = job_info['pUserName']
                    print(f"File Title: {title}, Time: {time}, User: {user}")
                time.sleep(1)
        except KeyboardInterrupt:
            win32print.ClosePrinter(print_queue)
    # 获取打印机信息
    printers = get_printers()
    for printer in printers:
        printer_name = printer['pPrinterName']
        print(f"Printer Name: {printer_name}")
        monitor_print_queue(printer_name)
    

    上述示例代码演示了如何获取系统中的打印机信息以及监视打印队列中的文件,实时抓取打印文件的题目、时间以及打印者信息。通过定时检查打印队列,可以获取到打印文件相关信息。

    评论

报告相同问题?