分割/合并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
在这里插入图片描述

7. 分割结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失眠软糖12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值