分割/合并pdf
原文链接
对原版做了一些修改,运行
py
文件就可以根据分割和合并的不同需求进行使用。
用法
1.将代码复制到txt文件中
# 导入读写pdf模块
from PyPDF2 import PdfFileReader, PdfFileWriter
import warnings
warnings.filterwarnings("ignore")
'''
注意:
页数从0开始索引
range()是左闭右开区间
'''
# pdf分割函数
def split_pdf(file_name, start_page, end_page, output_pdf):
'''
:param file_name:待分割的pdf文件名
:param start_page: 执行分割的开始页数
:param end_page: 执行分割的结束位页数
:param output_pdf: 保存切割后的文件名
'''
# 读取待分割的pdf文件
input_file = PdfFileReader(open(file_name, 'rb'))
# 实例一个 PDF文件编写器
output_file = PdfFileWriter()
# 把分割的文件添加在一起
for i in range(start_page, end_page):
output_file.addPage(input_file.getPage(i))
# 将分割的文件输出保存
with open(output_pdf, 'wb') as f:
output_file.write(f)
# pdf合并函数
def merge_pdf(merge_list, output_pdf):
"""
merge_list: 需要合并的pdf列表
output_pdf:合并之后的pdf名
"""
# 实例一个 PDF文件编写器
output = PdfFileWriter()
for ml in merge_list:
pdf_input = PdfFileReader(open(ml, 'rb'))
page_count = pdf_input.getNumPages()
for i in range(page_count):
output.addPage(pdf_input.getPage(i))
output.write(open(output_pdf, 'wb'))
# pdf分割交互函数
def split_pdf_hci():
# 此处改为pdf名称
title = input("请输入需要分割的pdf名称:")
if (title[-4:] != ".pdf"):
title += ".pdf"
# 此处改为页码数
page = int(input("请输入pdf页码数:"))
# 分割间隔
interval = int(input("请输入页码分割间隔数:"))
# 分割pdf
for i in range(0, page, interval):
pdf_name = str(i + 1) + "-" + str(i + interval) + ".pdf"
split_pdf(title, i, i + interval, pdf_name)
# pdf合并交互函数
def merge_pdf_hci():
pdf_list = []
b = "y"
name = input("请输入需要合并pdf名称:")
if (name[:-3] != ".pdf"):
name += ".pdf"
while b == "y":
b = input("是否还有需要合并的pdf(y/n):")
name = input("请输入pdf名称:")
if (name[:-3] != ".pdf"):
name += ".pdf"
pdf_list.append(name)
print("合并pdf将会命名为:合并.pdf")
merge_pdf(pdf_list, "合并.pdf")
if __name__ == '__main__':
choice = input("如果需要分割请输入1,如果需要合并请输入2:")
if (choice == "1"):
# 分割pdf
split_pdf_hci()
elif (choice == "2"):
# 合并pdf (如果需要合并)
merge_pdf_hci()
2. 将txt改名为pdf_split.py
3. 将pdf与py都放在桌面上(或同一文件夹下)
4. 打开powershell,cd到文件路径
cd D:\桌面
5. 安装PyPDF2
pip install PyPDF2
6. 运行文件,根据提示输入
python pdf_split.py