作者:单先森
时间:2020-01-14
需求分析:
有时候看PDF文件几十个需要一个一个看,很麻烦。假如能合并一起就好了,考虑用python写一个简单的小程序试试。
代码编写:
用到了第三方库:tkinter库,和PyPDF2库,需要 pip 命令安装。python版本为3.8.0
利用pyinstaller 打包成一个 exe可执行文件,有需要的可以下载 到电脑上。双击打开后, Ctrl +选择多个PDF文件 进行合并操作。程序下载地址在最下方。
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'),strict=False)
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() # 按ctrl选取多个文件的文件名,按字母顺序排序
print(file_path)
mergerPDF(file_path)
附链接:
链接:https://pan.baidu.com/s/14SIW6WG6l1YTle3JZ3pd8w
提取码:mntf