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】合并结果

相关推荐
用户8356290780512 分钟前
无需 Office:Python 批量转换 PPT 为图片
后端·python
张小潇1 小时前
AOSP15 Input专题InputManager源码分析
android·操作系统
markfeng82 小时前
Python+Django+H5+MySQL项目搭建
python·django
GinoWi3 小时前
Chapter 2 - Python中的变量和简单的数据类型
python
JordanHaidee3 小时前
Python 中 `if x:` 到底在判断什么?
后端·python
ServBay3 小时前
10分钟彻底终结冗长代码,Python f-string 让你重获编程自由
后端·python
闲云一鹤3 小时前
Python 入门(二)- 使用 FastAPI 快速生成后端 API 接口
python·fastapi
RdoZam4 小时前
Android-封装基类Activity\Fragment,从0到1记录
android·kotlin
Rockbean4 小时前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
曲幽5 小时前
FastAPI + Ollama 实战:搭一个能查天气的AI助手
python·ai·lora·torch·fastapi·web·model·ollama·weatherapi