乐于分享
好东西不私藏

PyPDF2,一个超酷的 Python 库!

PyPDF2,一个超酷的 Python 库!

点击上方卡片关注我

设置星标 学习更多技能

在日常工作中,经常需要处理PDF文件,比如提取文本内容、合并多个PDF文档、分割大型PDF文件或者添加水印等操作。PyPDF2是Python中一个功能强大的PDF处理库,它提供了纯Python实现的PDF文件读写功能,无需依赖外部程序。PyPDF2可以帮助开发者轻松实现PDF文件的读取、写入、合并、分割、加密等操作,是处理PDF文档的理想选择。

安装

PyPDF2的安装非常简单,使用pip包管理器即可完成安装:

pip install PyPDF2

安装完成后,可以通过以下代码验证是否安装成功:

import PyPDF2print(PyPDF2.__version__)

如果能够正常输出版本号,说明安装成功。

核心特性

  • 纯Python实现:无需安装额外的系统依赖,跨平台兼容性好
  • PDF读取:可以读取PDF文件的元数据、页数、文本内容等信息
  • PDF合并:支持将多个PDF文件合并为一个文件
  • PDF分割:可以从PDF中提取特定页面或分割成多个文件
  • PDF加密:支持为PDF文件添加密码保护
  • 页面旋转:可以旋转PDF页面的方向

基本功能

1、读取PDF文件信息

读取PDF文件是最基础的操作,通过PyPDF2可以轻松获取PDF的页数、作者、标题等元数据信息。在需要批量处理PDF文件或者建立文档管理系统时非常有用。

下面的示例展示了如何打开一个PDF文件并读取其基本信息,包括总页数和文档元数据。

from PyPDF2 import PdfReader# 打开PDF文件reader = PdfReader('example.pdf')# 获取页数print(f'总页数: {len(reader.pages)}')# 获取元数据metadata = reader.metadataprint(f'标题: {metadata.title}')print(f'作者: {metadata.author}')

2、提取文本内容

从PDF中提取文本是常见需求,比如需要分析PDF文档内容、建立搜索索引或进行数据挖掘,PyPDF2提供了简单的API来提取每一页的文本内容。

需要注意的是,对于图片型PDF或扫描件,PyPDF2无法直接提取文字,需要配合OCR技术使用。

from PyPDF2 import PdfReaderreader = PdfReader('example.pdf')# 提取第一页的文本page = reader.pages[0]text = page.extract_text()print(text)# 提取所有页面的文本all_text = ''for page in reader.pages:    all_text += page.extract_text()print(all_text)

3、合并PDF文件

在实际工作中,经常需要将多个PDF文件合并成一个文档,比如合并多个报告章节、整合扫描的文档等。

PyPDF2的PdfWriter类提供了强大的合并功能,可以按照指定顺序将多个PDF文件合并,并保存为新文件。

from PyPDF2 import PdfWriter, PdfReader# 创建PDF写入对象writer = PdfWriter()# 添加多个PDF文件pdf_files = ['file1.pdf''file2.pdf''file3.pdf']for pdf_file in pdf_files:    reader = PdfReader(pdf_file)for page in reader.pages:        writer.add_page(page)# 保存合并后的PDFwith open('merged.pdf''wb'as output_file:    writer.write(output_file)

高级功能

1、分割PDF文件

当PDF文件过大或需要提取特定章节时,分割功能就显得尤为重要。

下面的示例展示了如何从一个大型PDF中提取指定页面范围,创建新的PDF文件。

from PyPDF2 import PdfWriter, PdfReaderreader = PdfReader('large_file.pdf')writer = PdfWriter()# 提取第1-5页for page_num in range(05):    writer.add_page(reader.pages[page_num])# 保存分割后的PDFwith open('split_pages.pdf''wb'as output_file:    writer.write(output_file)

2、PDF加密

为PDF文件添加密码保护是保护敏感信息的重要手段,PyPDF2支持为PDF文件设置用户密码和所有者密码,可以限制文档的打开、编辑、打印等权限。

from PyPDF2 import PdfWriter, PdfReaderreader = PdfReader('example.pdf')writer = PdfWriter()# 复制所有页面for page in reader.pages:    writer.add_page(page)# 添加密码保护writer.encrypt(user_password='user123', owner_password='owner456')# 保存加密的PDFwith open('encrypted.pdf''wb'as output_file:    writer.write(output_file)

3、页面旋转

有时PDF页面的方向不正确,需要进行旋转调整,PyPDF2提供了页面旋转功能,可以将页面按90度的倍数进行旋转,确保文档的正确显示。=

from PyPDF2 import PdfWriter, PdfReaderreader = PdfReader('example.pdf')writer = PdfWriter()# 旋转第一页90度page = reader.pages[0]page.rotate(90)writer.add_page(page)# 保存旋转后的PDFwith open('rotated.pdf''wb'as output_file:    writer.write(output_file)

总结

PyPDF2是Python生态中一个非常实用的PDF处理库,它提供了丰富的功能来满足日常PDF文件处理需求。通过本文的介绍,我们了解了PyPDF2的安装方法、主要特性以及各种实用功能。从基础的读取和文本提取,到高级的合并、分割、加密和旋转操作,PyPDF2都能轻松应对。虽然PyPDF2在处理某些复杂PDF格式时可能存在局限性,但对于大多数常规PDF处理任务来说,它已经足够强大且易于使用。掌握PyPDF2,可以大大提高我们处理PDF文档的效率,实现文档处理流程的自动化。

💡推荐阅读

如果在编程工具充值使用上遇到麻烦,推荐一个牛逼的中转工具!一次性搞定 Codex 、Claude Code和 gemini,内容介绍和付费兑换详见文末阅读原文

我整理了一份《AI 编程出海资料》,把普通人从 0 到 1 的起步路径全拆解了,扫下面的二维码或微信搜索 257735添加VX,回复出海资料就可以直接领取。
除了基础配置,还有更核心的需求挖掘和网站分析等等。
如果你想进一步系统学习、实操出海项目,👉 点击了解详情:推荐我的AI编程出海训练营!

推荐一个牛逼的中转工具!

实测 4 个爆火 Skill,一句话生成画布/知识库/任务规划/自动发布

炸裂!Anthropic 又杀疯了!

从海外公司注册到 Stripe 收款,跑通了出海收付款全流程(实操分享)

出海建站必备:告别AI味,这两个页面设计 Skills 太牛了!

玩转 Claude Code Hooks:让自动化渗透到每个环节

出海工具全集:覆盖 9 大类别,收藏这一篇就够了

出海网站实战:Stripe 支付接入,从 0 到收款全流程

出海必备:一天搞定5张港卡,我的香港卡办理全攻略

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » PyPDF2,一个超酷的 Python 库!

评论 抢沙发

8 + 7 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮