pdf文件分割与拼接 [python]

pdf文件分割与拼接 [python]

环境:pip install PyPDF2
功能:删除pdf中的某页、合并几个pdf文件

# 导入读写pdf模块
from PyPDF2 import PdfFileReader, PdfFileWriter
'''
注意:
页数从0开始索引
range()是左闭右开区间
'''
 
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)

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
# split_pdf("移动.pdf", 3, 5, "移动-1.pdf")
# split_pdf("移动.pdf", 7, 8, "移动-2.pdf")
# split_pdf("移动.pdf", 9, 10, "移动-3.pdf")

# 合并pdf
pdf_list = ["封面.pdf", "正文.pdf"]
merge_pdf(pdf_list, "E22106170001.pdf")

注: 代码中的下标从0开始

### 回答1: 你可以使用 Python 的 PyPDF2 库来分割 PDF 文件。首先,你需要安装 PyPDF2: ``` pip install pypdf2 ``` 然后,你可以使用以下代码来读取 PDF 文件并将其分割成多个文件: ```python import os import PyPDF2 # 读取 PDF 文件 pdf_file = open('file.pdf', 'rb') pdf_reader = PyPDF2.PdfFileReader(pdf_file) # 获取 PDF 文件中的页数 num_pages = pdf_reader.numPages # 遍历每一页 for i in range(num_pages): # 创建一个新的 PDF 文件 output_pdf = PyPDF2.PdfFileWriter() # 将当前页加入新文件 output_pdf.addPage(pdf_reader.getPage(i)) # 使用文件名保存新文件(例如:file_1.pdf、file_2.pdf 等) with open('file_{}.pdf'.format(i+1), 'wb') as output_file: output_pdf.write(output_file) # 关闭原始 PDF 文件 pdf_file.close() ``` 这段代码会将原始 PDF 文件中的每一页分别保存到单独的新文件中。 注意:这段代码假设你已经有了一个名为 "file.pdf" 的 PDF 文件,并且你希望将其分割成多个新文件。如果你想分割文件名称不同,请将 "file.pdf" 替换为你要分割文件的名称。 ### 回答2: 要使用Python代码来分割PDF文件,可以使用PyPDF2库来实现。下面是一个简单的示例代码: ```python import PyPDF2 # 打开源PDF文件 with open('source.pdf', 'rb') as file: pdf = PyPDF2.PdfFileReader(file) # 将每一页PDF文件分割 for page_num in range(pdf.getNumPages()): output_pdf = PyPDF2.PdfFileWriter() # 将当前页面添加到输出PDF文件中 page = pdf.getPage(page_num) output_pdf.addPage(page) # 保存当前页面的PDF文件 with open(f'output_{page_num}.pdf', 'wb') as output_file: output_pdf.write(output_file) ``` 上述代码首先打开源PDF文件(名为'source.pdf'),然后遍历源PDF文件的每一页。对于每一页,创建一个新的输出PDF文件(以当前页面的页码命名)。然后将当前页面添加到输出PDF文件中,并将输出PDF文件保存。 请注意,该示例代码需要PyPDF2库的支持。可以通过以下命令安装该库: ``` pip install PyPDF2 ``` 在运行代码之前,请确保将源PDF文件(名为'source.pdf')与代码放在同一目录下,并且目录中没有同名的输出PDF文件。运行代码后,将会生成以页码命名的多个输出PDF文件。 ### 回答3: 分割PDF文件是指将一个大的PDF文件按照指定的条件切分成多个小的PDF文件。在Python中,我们可以使用PyPDF2库来实现这个功能。 首先,我们需要安装PyPDF2库,在命令行中执行以下命令: ``` pip install PyPDF2 ``` 接下来,我们可以使用以下代码来实现PDF文件分割: ```python import PyPDF2 # 打开原始PDF文件 with open('原始文件.pdf', 'rb') as file: # 创建一个PDF对象 pdf = PyPDF2.PdfFileReader(file) # 获取原始PDF文件的总页数 total_pages = pdf.getNumPages() # 定义每个小的PDF文件包含的页数 pages_per_file = 10 # 计算需要切分的小的PDF文件个数 num_files = total_pages // pages_per_file + 1 # 切分每个小的PDF文件 for i in range(num_files): # 创建一个新的PDF文件 output_pdf = PyPDF2.PdfFileWriter() # 定义切分开始和结束的页码 start_page = i * pages_per_file end_page = min((i+1) * pages_per_file, total_pages) # 将原始PDF文件的指定页码添加到新的PDF文件中 for page in range(start_page, end_page): output_pdf.addPage(pdf.getPage(page)) # 将切分后的PDF文件保存到磁盘上 with open(f'切分后文件{i+1}.pdf', 'wb') as output_file: output_pdf.write(output_file) ``` 上述代码首先打开原始的PDF文件,并根据需要切分的页数计算需要切分的小的PDF文件个数。然后,使用for循环依次切分每个小的PDF文件,并将切分后的结果保存到磁盘上。 在代码中,你需要将`原始文件.pdf`替换为你要分割PDF文件文件名,将`切分后文件{i+1}.pdf`替换为你想要保存的切分后的文件文件名。另外,你还可以根据需要修改`pages_per_file`参数来定义每个小的PDF文件包含的页数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值