侧边栏壁纸
博主头像
Tool博主等级

行动起来,活在当下

  • 累计撰写 27 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

源码4.使用Python和PyPDF2拆分PDF文件

Jimmie
2024-01-17 / 0 评论 / 0 点赞 / 20 阅读 / 4265 字
温馨提示:
收藏保存网址不迷路:www.jimmie.top,若内容或图片失效,请反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

在处理PDF文件时,我们经常需要从一个较大的PDF文档中提取特定的页面。这在准备报告或仅仅是想要分享文档的一部分时尤其有用。在本篇博客中,我们将学习如何使用Python的PyPDF2库来实现这一功能。让我们开始吧!

安装PyPDF2库 🔧

在开始之前,确保你已经安装了PyPDF2库。如果你还没有安装它,可以通过以下命令来安装:

pip install PyPDF2

导入必要的模块 📚

在你的Python脚本中,首先需要导入PdfWriterPdfReader类:

from PyPDF2 import PdfWriter, PdfReader

PdfWriter类用于创建和写入新的PDF文件,而PdfReader类用于读取已有的PDF文件。

编写拆分PDF的函数 🖨️

我们将创建一个名为pdf_split的函数,它将接受输入PDF的路径、输出PDF的路径以及要提取的页面范围:

def pdf_split(pdf_in, pdf_out, start, end):
    """
    从PDF文件中提取特定范围的页面,并保存到新的PDF文件中。
    :param pdf_in: 输入的PDF文件路径。
    :param pdf_out: 输出的PDF文件路径。
    :param start: 提取页面的起始页码(从0开始计数)。
    :param end: 提取页面的结束页码(不包含此页)。
    """
    # ...

创建PdfWriter对象 📝

在函数内部,我们首先创建一个PdfWriter对象:

output = PdfWriter()

这个对象将用来收集我们想要提取的页面,并最终写入到新的PDF文件中。

打开输入PDF文件 📂

使用with语句和open函数,我们以二进制读取模式打开输入的PDF文件:

with open(pdf_in, 'rb') as in_pdf:
    # ...

创建PdfReader对象 📖

通过PdfReader对象,我们可以访问PDF文件中的页面:

pdf_reader = PdfReader(in_pdf)

检查页面范围是否有效 ✔️

在提取页面之前,我们需要检查提供的页面范围是否有效:

num_pages = len(pdf_reader.pages)
if start < 0 or end > num_pages or start >= end:
    raise ValueError("Invalid range of pages to extract.")

如果页面范围不正确,我们将抛出一个ValueError异常。

提取并添加页面 ✂️

接下来,我们遍历指定范围的页面,并将它们添加到PdfWriter对象中:

for i in range(start, end):
    output.add_page(pdf_reader.pages[i])

保存新的PDF文件 💾

最后,我们再次使用with语句和open函数,这次是以二进制写入模式打开输出的PDF文件,并将提取的页面写入到新的PDF文件中:

with open(pdf_out, 'wb') as out_pdf:
    output.write(out_pdf)

主函数入口 🚪

在Python脚本的主部分,我们调用pdf_split函数并提供必要的参数:

if __name__ == '__main__':
    pdf_in = input("请输入pdf文件所在路径:")
    pdf_out = input("拆分后的pdf文件所在目录以及文件名:")
    start_page, end_page = 1, 3  # 提取第2页到第3页(页码从0开始计数)
    pdf_split(pdf_in, pdf_out, start_page, end_page)

这段代码会提示用户输入输入和输出文件的路径,并设置要提取的页面范围。然后它会调用我们之前定义的pdf_split函数来执行实际的页面提取工作。

结语 🎉

恭喜你!现在你已经知道如何使用Python和PyPDF2库来拆分PDF文件,并提取出特定范围的页面了。你可以将这个脚本用于自动化你的PDF处理任务,节省大量的时间和精力。如果有任何问题,欢迎联系微信一起交流,需要代码源文件的也可以联系我索要。都是免费的。

jimmie.webp

  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
  3. QQ打赏

    qrcode qq
博主关闭了所有页面的评论