python实现【wps】批量打印文件(支持遍历所有子文件夹)

概述

        本文主要使用了3个库,os、time、pyautogui。由于代码比较简单,采用的是面向过程的方式进行敲码。pyauyigui库的主要功能是交互式操作window,提供了一些简单的操作函数。分为四个大的板块,分别是操作鼠标,操作键盘,提示框,截图功能。
        安装方式: pip3 install pyautogui / pip install pyautogui,如果安装失败,请注明python的版本。
参考文档:pyautogui
https://pyautogui.readthedocs.io/en/latest/

"""
面向对象版本
使用说明:
            1.只针对wps,暂时不支持office。
            2.填写相应的参数即可
            3.文件夹允许有不需要打印的文件,但不支持存放在多个文件夹。在文件夹里的文件将不参与识别
            4.文件管理器必须勾选文件扩展名选项
            
参数说明:
            path:完整的文件路径
            file_extension:文件的后缀(不包含".")
更新升级: 2.0版本
			1.支持遍历文件夹,遍历顺序是从顺序“子-子-子”
			2.打印失败原因提示
"""
import os
import pyautogui as mouse
import time
import re

class runing(object):
    def __init__(self, path, file_extension):
        self.path = path
        self.file_extension = file_extension

    def open_file(self):
        for root, dirs, files in os.walk(self.path, topdown=True):
            for name in files:
                file = os.path.join(root, name)
                if (file.endswith(".%s" % self.file_extension) == True) and ("~$" not in file):
                    print("准备把--%s--添加进打印机序列" % file)
                    os.system("start %s" % file)
                    self.Operation_screen()

    def Operation_screen(self):
        time.sleep(3)
        mouse.PAUSE = 1
        mouse.hotkey("ctrl", "p")
        time.sleep(3)
        mouse.press("enter")
        time.sleep(3)
        mouse.hotkey("ctrl","w")
        time.sleep(3)

    def __del__(self):
        print("----没有将文件添加到文件列表的原因----\n1.没有找到匹配成功的文件\n2.文件路径有误")
        os.system("start taskkill /f /t /im wps.exe")

def main():
    path = input("请输入文件夹路径:")
    file_extension = input("请输入需要批量打印的文件后缀:")

    printer = runing(path, file_extension)
    printer.open_file()
    

if __name__ == '__main__':
    main()


        接下来会进一步完善代码,功能,有需要的伙伴可以点赞加好友联系作者。(需要.exe直接运行文件也可联系作者)



如有疑问或需数据请联系作者可留言博客或+
qq:1769190045

文章内容只供参考学习阅读,不可他用(特别商用)。侵权必追究其法律责任

————————部分内容参考他人博客文章————————

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python可以使用PyPDF2库实现批量打印PDF文件。 首先,我们需要安装PyPDF2库,可以使用以下命令: ``` pip install PyPDF2 ``` 接下来,我们需要编写Python代码来实现批量打印PDF。以下是一个简单的示例: ```python import os from PyPDF2 import PdfFileReader import win32print import win32api def print_pdf(file_path): printer_name = win32print.GetDefaultPrinter() # 获取默认打印机称 win32api.ShellExecute(0, "print", file_path, '/d:"%s"' % printer_name, ".", 0) # 调用打印功能打印文件 def batch_print_pdf(folder_path): for file_name in os.listdir(folder_path): if file_name.endswith(".pdf"): # 判断文件后缀为.pdf的文件 file_path = os.path.join(folder_path, file_name) print_pdf(file_path) # 调用batch_print_pdf函数传入要打印的PDF文件夹的路径 batch_print_pdf("C:/path/to/folder") ``` 在上述代码,我们首先导入了需要的库:os用于操作文件和文件夹,PdfFileReader用于读取PDF文件,win32print和win32api用于打印PDF文件。 print_pdf函数用于打印单个PDF文件。我们使用win32print.GetDefaultPrinter()获取默认打印机的称,然后使用win32api.ShellExecute调用系统的打印功能打印文件。 batch_print_pdf函数用于批量打印PDF文件夹的所有文件。我们使用os.listdir函数遍历文件夹的所有文件,然后使用os.path.join函数得到文件的完整路径,调用print_pdf函数打印文件。 最后,我们调用batch_print_pdf函数传入要打印的PDF文件夹的路径,即可实现批量打印PDF文件。 ### 回答2: 在Python,我们可以使用PyPDF2库来实现批量打印PDF文件。以下是一个简单的代码示例: ```python import os from PyPDF2 import PdfPrinter, PdfFileReader def print_pdf_files(directory): printer = PdfPrinter() for filename in os.listdir(directory): if filename.endswith('.pdf'): filepath = os.path.join(directory, filename) print(f'Printing {filepath}...') with open(filepath, 'rb') as file: pdf = PdfFileReader(file) pages = pdf.getNumPages() printer.setOutputFile(f'{filename}_printed.pdf') for i in range(pages): printer.printPage(pdf.getPage(i)) printer.write() print('Printing completed.') # 调用函数并传入目录路径 print_pdf_files('/path/to/pdf/files') ``` 上述代码通过PyPDF2库来读取PDF文件并使用PdfPrinter进行打印操作。`print_pdf_files`函数遍历指定目录下的所有文件,筛选出.pdf文件,然后打开每个PDF文件并进行打印操作。打印的结果将保存在当前目录下并附加"_printed"后缀的新文件。最后,打印完成后输出"Printing completed."。 请记得在运行代码之前,需先在计算机上安装PyPDF2库。可以通过`pip install PyPDF2`命令来进行安装。 ### 回答3: 要使用Python批量打印PDF文件,可以使用PyPDF2库来实现。 首先需要安装PyPDF2库,可以使用pip命令安装: ``` pip install PyPDF2 ``` 然后,创建一个Python脚本文件,导入PyPDF2库: ``` import PyPDF2 ``` 接下来,定义一个函数,用于批量打印PDF文件。函数接受两个参数,一个是PDF文件的路径列表,另一个是打印机的称。代码如下: ``` def print_pdf_files(pdf_files, printer_name): for file_path in pdf_files: with open(file_path, 'rb') as file: pdf_reader = PyPDF2.PdfReader(file) for page_num in range(len(pdf_reader.pages)): page = pdf_reader.pages[page_num] pdf_writer = PyPDF2.PdfWriter() pdf_writer.add_page(page) pdf_writer.write(open('temp.pdf', 'wb')) # 保存临时的单页PDF文件 # 使用系统命令打印单页PDF文件 import subprocess # 将'Acrobat Reader'替换为你使用的PDF阅读器的程序 subprocess.Popen(['Acrobat Reader', '/t', 'temp.pdf', printer_name], shell=True) ``` 在主程序,可以调用这个函数来批量打印PDF文件。例如: ``` if __name__ == '__main__': pdf_files = ['file1.pdf', 'file2.pdf', 'file3.pdf'] # PDF文件的路径列表 printer_name = 'Printer1' # 打印机的称 print_pdf_files(pdf_files, printer_name) ``` 以上代码会循环打印每个PDF文件的所有页面,可以结合具体需求进行修改。注意,代码的'Acrobat Reader'需要替换为您使用的PDF阅读器的程序。 希望以上回答能对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值