import tkinter as tk
from tkinter import filedialog
from PyPDF2 import merger, pdf
def mergerPDF(inFileList):
'''
按列表名称顺序合并pdf
'''
file_opt = options = {}
options['defaultextension'] = '.pdf'
options['filetypes'] = [('任意类型', '.*'),('pdf文件', '.pdf')]
options['initialfile'] = 'temp.pdf'
options['parent'] = root
options['title'] = '合并pdf文件' # 定义另存为界面的内容
pdfWriter = pdf.PdfFileWriter()
for inFile in inFileList:
pdfReader = pdf.PdfFileReader(open(inFile,'rb'))
numPages = pdfReader.getNumPages() # 获取文档页数
for index in range(0, numPages):
pageObj = pdfReader.getPage(index) # 获取当前页
pdfWriter.addPage(pageObj) # 写入临时文件
outFile = tk.filedialog.asksaveasfile(mode='w',**file_opt) # 保存
if outFile:
pdfWriter.write(open(outFile.name,'wb'))
print("完成")
else:
print("失败")
root = tk.Tk()
root.withdraw()
# file_path = filedialog.askopenfilenames() # 获取一个文件的文件名
file_path = filedialog.askopenfilenames() # 按ctrl选取多个文件的文件名,按字母顺序排序
print(file_path)
mergerPDF(file_path)
总体来说,PyPDF2可以做好多事情,如果用得到,可以分割pdf、用图片生成pdf等等的一系列操作。作为一个工具还是十分方便的。
当然了,使用这个的人一大堆,网上教程也一大堆,我这里只是简单地加了一个文件打开对话框,还没有其他的功能,好在操作简便,只是作为一个小工具来用的,顺便记录一下现在Python用起来简单到了何种地步,不是我瞎说,小学生看看都得会用。但关键还在用它来做什么,没有要完成的任务,再厉害的武器也是白扯。
第一篇博客总要写点废话才好,挺久以前就想写,但是不知道写些什么,总之,不管是不是幼稚的不行,总要有个开始才好,我这种人总要有个契机才能开始某件事情(真的是个很不好的习惯),今天的契机应该是好朋友转行程序员并且开始写博客了。这里写的东西十分简单,在一个非程序员的工作岗位上,用最不花钱、最简单的路子来解决问题是最好的。如果文档少的话用在线的 Smallpdf 肯定是最简单的,但要是多了的话,Python就是最简单的了。