前情提要:python安装pypdf2包
pip install pypdf2
第一种:既需要每一个单独的首页,也需要将首页合并。
整体操作思路,将文件夹下面原本的每一个pdf获取第一页,然后再写出,将其放在FirstPage文件夹下。再读取FirstPage文件夹下面的所有首页的pdf,将其合并为一个文件。
from PyPDF2 import PdfReader, PdfWriter, PdfMerger
import os# 切换到pdf所在工作目录
os.chdir("D:/个人工作/paper202403")
#在上级目录新建一个文件夹
os.mkdir("../FirstPages")#循环生成第一页PDF
for _ in os.listdir():origin_file = PdfReader(_)first_page = PdfWriter()first_page.add_page(origin_file.pages[0] )with open("../FirstPages/{}".format(_), "wb") as f:first_page.write(f)#定义即将读取的指定PDF文件路径,注意文件的顺序,正斜杠/
target_path = '../FirstPages'pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]# 合并pdf文件
file_merger = PdfMerger()
for pdf in pdf_lst:file_merger.append(pdf)
# 合并pdf文件,并输出到指定路径
file_merger.write("../FirstPages/1_outputMerge.pdf")
第二种:只需要一个首页合并,不需要单独的首页。直接在一个Pdfwriter里add所有的首页,然后输出即可。
from PyPDF2 import PdfReader, PdfWriter
import os# 切换到pdf所在工作目录
os.chdir("D:/个人工作/paper202403")
#在上级目录新建一个文件夹
os.mkdir("../2FirstPages")#循环读取文件夹下所有pdf首页,全部添加在first_page中
first_page = PdfWriter()
for _ in os.listdir():origin_file = PdfReader(_)first_page.add_page(origin_file.pages[0] )
#写出first_page中所有首页信息
with open("../2FirstPages/2_outputMerge.pdf", "wb") as f:first_page.write(f)