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

devtools/2024/9/25 19:05:37/

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, PdfReaderpdf_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]# 把文本写入到新的pdfpdf_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, PdfReaderfiles = 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]# 把文本写入到新的pdfpdf_write.add_page(text)# wb表示二进制文件的写入,pdf中因为不只有文本
with open(f'./file/Python教程_merge.pdf', 'wb') as file_wb:pdf_write.write(file_wb)print('合并完毕')

【2】合并结果

在这里插入图片描述


http://www.ppmy.cn/devtools/117127.html

相关文章

WEB 编程:使用富文本编辑器 Quill 配合 WebBroker 后端

使用 Delphi 的 WebBroker 框架写 Web Server,需要一个前端的富文本编辑器。 评估了好几个,最后选择 Quill 这个开源的。 官方地址:Quill - Your powerful rich text editor 把前端代码,存储为一个单独的文本文件,方…

音频格式不支持如何解决?5个音频转换软件帮你忙!

我们常常会遇到这样的困扰:满心期待地想要播放一段音频,却被告知“音频格式不支持”。不过,不用担心,无论你是遇到MP3、WAV、FLAC还是其他冷门格式的音频文件,我们都有一款合适你的音频转换软件,可以轻松将…

ChartLlama: A Multimodal LLM for Chart Understanding and Generation论文阅读

原文链接:https://arxiv.org/abs/2311.16483 代码与数据集:https://tingxueronghua.github.io/ChartLlama/ 本文启发:文章提出利用GPT-4合成大量图表数据,这些数据包含各种图表类型,包含丰富的instruction data。然后…

云服务器docker中Hbase整合java-api需要放行的接口

在使用 Docker 部署 HBase 并通过 Java API 进行访问时,确保通信畅通非常重要。如果 HBase 部署在云服务器或虚拟机中,你需要在云服务器的安全组中放行一些关键端口,确保外部或本地的 Java 应用可以正确访问 Docker 容器中的 HBase 服务。 1…

主流卷积神经网络CNN总结

ResNet(2015)残差神经网络 残差结构 ResNet50具体卷积结构图 ResNeXt(2016)加入了分组卷积的思想,将原ResNet网络中的block替换成由group分组的block,两者得到的feature map一致,只是参数量更少…

缓存预热方案详解

在高性能Web应用中,缓存技术是提升系统响应速度的关键手段之一。然而,在系统启动或重启后,缓存往往是空的,此时来自用户的请求将直接打到数据库上,导致响应时间增加。为了避免这种情况,缓存预热就显得尤为重…

剪映草稿批量自动化导出教程实操演示

如何批量自动导出草稿?今天我来实操演示。首先打开谷歌剪映助手 如果没有安装谷哥剪映助手的可以自行搜索下载,打开后找到批量导出多个草稿自动化导出。接着在右侧输入你要导出草稿的数量,其他的选项根据需求自行选择,最后点击立即…

深度学习02-pytorch-07-张量的拼接操作

在 PyTorch 中,张量的拼接操作主要通过 torch.cat() 和 torch.stack() 两个函数来完成。拼接操作允许你将多个张量沿着指定的维度连接在一起,构建更大的张量。以下是详细解释和举例说明: 1. torch.cat() 功能: 沿着指定的维度连接&#xff…