PyPDF2 合并PDF文档

开始Python

  1. 去 Python官网 下载最新的版本,我用的windows下的 Python 3.7.2;
  2. win+R 打开cmd窗口,使用 pip install PyPDF2 安装 PyPDF2;
  3. 由于只是一个脚本工具就可以了,所以就用一下简单的 tkinter 就好了。

代码流程

  1. 显示选择文件窗口,选择文件;
  2. 自动合并;
  3. 另存为。

Python代码

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)

后期优化

  • 想要按顺序合并的话,需要手动修改文件名,按字母排序;
  • 可以像 Smallpdf 里面一样,用 Qt 之类的写个界面,拖动文件进窗口、排序等;

结语

总体来说,PyPDF2可以做好多事情,如果用得到,可以分割pdf、用图片生成pdf等等的一系列操作。作为一个工具还是十分方便的。

当然了,使用这个的人一大堆,网上教程也一大堆,我这里只是简单地加了一个文件打开对话框,还没有其他的功能,好在操作简便,只是作为一个小工具来用的,顺便记录一下现在Python用起来简单到了何种地步,不是我瞎说,小学生看看都得会用。但关键还在用它来做什么,没有要完成的任务,再厉害的武器也是白扯。

其余废话

第一篇博客总要写点废话才好,挺久以前就想写,但是不知道写些什么,总之,不管是不是幼稚的不行,总要有个开始才好,我这种人总要有个契机才能开始某件事情(真的是个很不好的习惯),今天的契机应该是好朋友转行程序员并且开始写博客了。这里写的东西十分简单,在一个非程序员的工作岗位上,用最不花钱、最简单的路子来解决问题是最好的。如果文档少的话用在线的 Smallpdf 肯定是最简单的,但要是多了的话,Python就是最简单的了。

 

你可能感兴趣的:(Python)