|
发表于 2021-12-8 21:20:45
|
显示全部楼层
可以写一个BrowserDir函数,正好我最近写一个批量处理PDF的小脚本(对选定文件夹的PDF文件批量操作,如果PDF文件总页数为奇数页,则在最后一页插入一页空白页),代码供参考~~
- from PyPDF2 import PdfFileReader, PdfFileWriter
- import os
- import tkinter
- import tkinter.filedialog
- import tkinter.messagebox
- class Window():
- def __init__(self):
- self.root = root = tkinter.Tk()
- self.label = tkinter.Label(root, text='奇数页PDF批量插入空白页')
- self.label.grid(row=0, column=0)
- self.label = tkinter.Label(root, text='选择目录')
- self.label.grid(row=1, column=0)
- self.entryDir = tkinter.Entry(root)
- self.entryDir.grid(row=1, column=1)
- self.BrowserDirButton = tkinter.Button(root, text='浏览', command=self.BrowserDir)
- self.BrowserDirButton.grid(row=1, column=2)
- self.ButtonCov = tkinter.Button(root, text='开始处理', command=self.Conv, )
- self.ButtonCov.grid(row=2, column=0)
- def BrowserDir(self):
- directory = tkinter.filedialog.askdirectory(title='Little Turtle')
- if directory:
- self.entryDir.delete(0, tkinter.END)
- self.entryDir.insert(tkinter.END, directory)
- def Conv(self):
- path = self.entryDir.get()
- for file in os.listdir(path):
- if file[-4:] in ('.pdf', '.PDF'):
- PDFFile = path + "/" + file
- pdf_reader = PdfFileReader(PDFFile)
- pdf_writer = PdfFileWriter()
- NumPages = pdf_reader.getNumPages()
- if NumPages % 2 == 1:
- pdf_writer.appendPagesFromReader(pdf_reader)
- #在总页数为奇数的PDF文件最后插入空白页,尺寸与最后一页一致
- pdf_writer.addBlankPage()
- with open(PDFFile, "wb") as out:
- pdf_writer.write(out)
- out.close()
- def mainloop(self):
- self.root.minsize(330, 150)
- self.root.maxsize(330, 150)
- self.root.title('Little Turtle')
- self.root.mainloop()
- if __name__ == "__main__":
- window = Window()
- window.mainloop()
复制代码 |
|