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

相关推荐
冷雨夜中漫步5 分钟前
Python入门——字符串
开发语言·python
Yvonne爱编码5 分钟前
Java 接口学习核心难点深度解析
java·开发语言·python
June bug18 分钟前
(#数组/链表操作)合并两个有重复元素的无序数组,返回无重复的有序结果
数据结构·python·算法·leetcode·面试·跳槽
人工智能AI技术24 分钟前
【Agent从入门到实践】33 集成多工具,实现Agent的工具选择与执行
人工智能·python
AIFQuant34 分钟前
如何通过股票数据 API 计算 RSI、MACD 与移动平均线MA
大数据·后端·python·金融·restful
70asunflower41 分钟前
Python with 语句与上下文管理完全教程
linux·服务器·python
deephub1 小时前
为什么标准化要用均值0和方差1?
人工智能·python·机器学习·标准化
hnxaoli1 小时前
win10程序(十五)归档文件的xlsx目录自动分卷
python
喵手1 小时前
Python爬虫零基础入门【第九章:实战项目教学·第8节】限速器进阶:令牌桶 + 动态降速(429/5xx)!
爬虫·python·令牌桶·python爬虫工程化实战·python爬虫零基础入门·限速器·动态降速
深度学习lover1 小时前
<项目代码>yolo毛毛虫识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·毛毛虫识别