前情提要:python安装pypdf2包
pip install pypdf2
第一种:既需要每一个单独的首页,也需要将首页合并。
整体操作思路,将文件夹下面原本的每一个pdf获取第一页,然后再写出,将其放在FirstPage文件夹下。再读取FirstPage文件夹下面的所有首页的pdf,将其合并为一个文件。
python
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所有的首页,然后输出即可。
python
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)