PyPDF2:Python里的PDF忍者

目录📑

    • [1. 背景📑](#1. 背景📑)
    • [2. PyPDF2简介:你的PDF小帮手📑](#2. PyPDF2简介:你的PDF小帮手📑)
    • [3. PyPDF2全能手册📑](#3. PyPDF2全能手册📑)
      • [3.1 读取PDF文件内容](#3.1 读取PDF文件内容)
      • [3.2 合并PDF文件](#3.2 合并PDF文件)
      • [3.3 分割PDF文件](#3.3 分割PDF文件)
      • [3.4 加密PDF文件](#3.4 加密PDF文件)
    • [4. 总结📑](#4. 总结📑)

1. 背景📑

又是一个实际需求,将银行网站下载来的多页且单页多张回单的PDF裁剪成每张单据独立一个PDF文件,调研多个操作PDF的模块后,最终选择了PyPDF2,本文将为大家介绍PyPDF2的常用的功能。

2. PyPDF2简介:你的PDF小帮手📑

PyPDF2是一个无需外部依赖的纯Python库,可以让我们在不安装任何额外软件的情况下,进行PDF的读取、分割、合并以及转换等操作:
优点:

  • 轻量:没有庞大的依赖,纯Python编写。
  • 功能全面:从读取到写入,从合并到拆分,功能丰富。
  • 跨平台:无论是Windows、macOS还是Linux,它都能良好运行。

缺点:

  • 不支持PDF 1.7及以上版本的某些特性:如果你想处理带有复杂特性的最新PDF文件,可能会遇到一些问题。
  • 文档较少:虽然用起来简单,但如果你想成为高级用户,可能需要一点探索精神。

3. PyPDF2全能手册📑

开始之前,我们需要确保PyPDF2已经安装在你的Python环境中。打开你的终端,输入以下命令:

bash 复制代码
pip install PyPDF2

3.1 读取PDF文件内容

python 复制代码
import PyPDF2

# 以二进制读取模式打开PDF文件
with open('example.pdf', 'rb') as file:
    reader = PyPDF2.PdfFileReader(file)
    
    # 获取PDF的页数
    num_pages = reader.numPages
    print(f"该PDF文件总共有 {num_pages} 页。")

    # 读取第一页的内容
    page = reader.getPage(0)
    page_content = page.extractText()
    print(page_content)

3.2 合并PDF文件

python 复制代码
import PyPDF2

# 创建PDF合并对象
merger = PyPDF2.PdfFileMerger()

# 打开每个PDF文件并添加到合并器
pdf_files = ['file1.pdf', 'file2.pdf', 'file3.pdf']
for pdf_file in pdf_files:
    with open(pdf_file, 'rb') as file:
        merger.append(file)

# 输出合并后的PDF到文件
with open('combined.pdf', 'wb') as out_file:
    merger.write(out_file)

print("PDF文件合并完成!")

3.3 分割PDF文件

python 复制代码
import PyPDF2

# 打开原始PDF文件
with open('big_file.pdf', 'rb') as file:
    reader = PyPDF2.PdfFileReader(file)
    
    # 创建一个写入器,保存我们需要的页面
    writer = PyPDF2.PdfFileWriter()
    
    # 假设我们只需要从第五页到第十页
    for page_num in range(4, 10):
        page = reader.getPage(page_num)
        writer.addPage(page)
    
    # 写入到新的PDF文件
    with open('extracted_pages.pdf', 'wb') as new_file:
        writer.write(new_file)

print("指定页面已经成功保存到新的PDF文件中!")

3.4 加密PDF文件

python 复制代码
from PyPDF2 import PdfFileReader, PdfFileWriter

# 读取PDF文件
reader = PdfFileReader('document.pdf')

# 创建PDF写入器,把读取的内容写入
writer = PdfFileWriter()
for page_num in range(reader.numPages):
    writer.addPage(reader.getPage(page_num))

# 添加密码保护
writer.encrypt('super_secret_password')

# 输出加密后的PDF
with open('encrypted_document.pdf', 'wb') as output:
    writer.write(output)

4. 总结📑

祝贺你!跟着本文的步伐,你刚刚解锁了使用PyPDF2进行PDF文件处理的基础技能。我们一起学习了如何读取PDF文件、合并多个PDF文件等操作。PyPDF2是一个功能强大且灵活的库,适用于各类PDF文档操作的场景,而我们今天探索的仅仅是它能力的冰山一角。

如果你对PDF文档的处理有更深入的需求,比如加密、解密、旋转页面或者添加水印等,PyPDF2都能胜任。所以,不要停滞不前,拿起你的键盘,继续你的探索之旅吧!

参考文档:

相关推荐
Mopes__35 分钟前
Python | Leetcode Python题解之第452题用最少数量的箭引爆气球
python·leetcode·题解
AI视觉网奇42 分钟前
pymeshlab 学习笔记
开发语言·python
纪伊路上盛名在1 小时前
如何初步部署自己的服务器,达到生信分析的及格线
linux·运维·服务器·python·学习·r语言·github
计算机源码社1 小时前
分享一个餐饮连锁店点餐系统 餐馆食材采购系统Java、python、php三个版本(源码、调试、LW、开题、PPT)
java·python·php·毕业设计项目·计算机课程设计·计算机毕业设计源码·计算机毕业设计选题
汤兰月1 小时前
Python中的观察者模式:从基础到实战
开发语言·python·观察者模式
西柚与蓝莓3 小时前
【开源开放体系总结】
python
belldeep6 小时前
python:reportlab 将多个图片合并成一个PDF文件
python·pdf·reportlab
做网站建设制作设计小程序推广7 小时前
南昌网站建设让你的企业网站更具竞争力
经验分享
FreakStudio9 小时前
全网最适合入门的面向对象编程教程:56 Python字符串与序列化-正则表达式和re模块应用
python·单片机·嵌入式·面向对象·电子diy
slomay9 小时前
关于对比学习(简单整理
经验分享·深度学习·学习·机器学习