Python办公自动化教程(002):PDF的拆分与合并

1、PyPDF2 介绍

介绍:

PyPDF2是一个用于处理PDF文件的Python库,它提供了丰富的功能来读取、编辑、合并、拆分PDF文档,以及提取文本、图像和其他内容。

功能:

  1. 读取PDF:PyPDF2可以轻松地打开和读取PDF文件,获取文档信息(如标题、作者、创建日期等)以及页面数量和页面尺寸。
  2. 页面操作:支持页面的合并、拆分、旋转、裁剪等操作,以及删除、插入新页面等。
  3. 加密与解密:可以对PDF文件进行加密和解密操作,保护文件内容的安全。
  4. 添加水印:可以在PDF页面上添加文本或图片水印,支持调整水印的透明度和位置。
  5. 表单操作:能够读取和填写PDF表单数据,创建、修改和删除表单字段。
  6. 元数据操作:可以获取和设置PDF文档的元数据,如标题、作者、主题等。
  7. 书签与链接:支持添加、修改和删除PDF文档中的书签和链接。

2、PDF文档拆分与合并

2.1 PDF拆分

【1】完整代码

python 复制代码
from PyPDF2 import PdfWriter, PdfReader

pdf_reader = PdfReader('./file/test.pdf')
print(len(pdf_reader.pages))

for i in range(len(pdf_reader.pages)):
    # 创建
    pdf_write = PdfWriter()
    # 获取当前页的文本
    text = pdf_reader.pages[i]
    # 把文本写入到新的pdf
    pdf_write.add_page(text)
    # wb表示二进制文件的写入,pdf中因为不只有文本
    with open(f'./file/Python教程_{i+1}.pdf', 'wb') as file_wb:
        pdf_write.write(file_wb)


print('拆分完成')

【2】拆分结果

2.2 PDF合并

将上一步拆分之后的PDF文件重新合并为新的文件【Python教程_merge.pdf】

【1】代码

python 复制代码
import os
import re
from PyPDF2 import PdfWriter, PdfReader

files = os.listdir('./file')
# 拿到拆分之后的文件
all_files = []
for file in files:
    if re.search(r'_\d', file):
        all_files.append(file)
print(all_files)

# 创建pdf写入器
pdf_write = PdfWriter()
for file in all_files:
    pdf_reader = PdfReader(f'./file/{file}')
    # 遍历pdf页码,因为不确定当前的pdf是否只有一页
    for i in range(len(pdf_reader.pages)):
        # 获取当前页的文本
        text = pdf_reader.pages[i]
        # 把文本写入到新的pdf
        pdf_write.add_page(text)
        # wb表示二进制文件的写入,pdf中因为不只有文本
with open(f'./file/Python教程_merge.pdf', 'wb') as file_wb:
    pdf_write.write(file_wb)

print('合并完毕')

【2】合并结果

相关推荐
索迪迈科技19 小时前
影视APP源码 SK影视 安卓+苹果双端APP 反编译详细视频教程+源码
android·影视app源码·sk影视
大佬,救命!!!19 小时前
整理python快速构建数据可视化前端的Dash库
python·信息可视化·学习笔记·dash·记录成长
孔丘闻言19 小时前
python调用mysql
android·python·mysql
Teletele-Lin19 小时前
Miniconda安装与VSCode搭建远程Python、Jupyter开发环境
vscode·python·jupyter·环境配置·远程开发
虎头金猫20 小时前
如何在Linux上使用Docker在本地部署开源PDF工具Stirling PDF:StirlingPDF+cpolar让专业操作像在线文档一样简单
linux·运维·ubuntu·docker·pdf·开源·centos
伊玛目的门徒20 小时前
告别 OpenAI SDK:如何使用 Python requests 库调用大模型 API(例如百度的ernie-4.5-turbo)
python·openai·requests·大模型调用·ernie-4.5-turbo
sinat_6020353621 小时前
模块与包的导入
运维·服务器·开发语言·python
计算机学姐21 小时前
基于Python的旅游数据分析可视化系统【2026最新】
vue.js·后端·python·数据分析·django·flask·旅游
恋雨QAQ21 小时前
python函数和面向对象
开发语言·python
萧雾宇21 小时前
Android Compose打造仿现实逼真的烟花特效
android·flutter·kotlin