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

相关推荐
曾凡宇先生9 分钟前
无法远程连接 MySQL
android·开发语言·数据库·sql·tcp/ip·mysql·adb
程序员大雄学编程14 分钟前
「用Python来学微积分」11. 夹逼定理与单调有界收敛定理
python·数学·微积分·1024程序员节
deephub14 分钟前
vLLM 性能优化实战:批处理、量化与缓存配置方案
人工智能·python·大语言模型·1024程序员节·vllm
B站_计算机毕业设计之家1 小时前
Spark微博舆情分析系统 情感分析 爬虫 Hadoop和Hive 贴吧数据 双平台 讲解视频 大数据 Hadoop ✅
大数据·hadoop·爬虫·python·数据分析·1024程序员节·舆情分析
我是华为OD~HR~栗栗呀1 小时前
华为OD-Java面经-21届考研
java·c++·后端·python·华为od·华为·面试
刺客-Andy2 小时前
Python 第二十节 正则表达式使用详解及注意事项
python·mysql·正则表达式
zhangphil2 小时前
Android GPU的RenderThread Texture upload上传Bitmap优化prepareToDraw
android
新子y3 小时前
【小白笔记】「while」在程序语言中的角色
笔记·python
java1234_小锋3 小时前
[免费]基于Python的YOLO深度学习垃圾分类目标检测系统【论文+源码】
python·深度学习·yolo·垃圾分类·垃圾分类检测
柿蒂3 小时前
聊聊SliverPersistentHeader优先消费滑动的设计
android·flutter