使用Python将多个pdf指定页整合到一个pdf文件中

在工作的一些场景中,有时需要我们将多个pdf文件中的内容提取出来,比如有10个pdf文件,我们要统一打印pdf文件的第一页或者最后一页…

需求分析

我们需要批量提取PDF文件中的任意一页,可以是第一页也可以是中间某一页,也可以是最后一页。安装我们操作数组的逻辑,当我们输入整数的时候页面从前开始算,输入负数时页面从后开始算。

如果要提取的某一页不存在,则跳过改文件操作,提取下一个文件。

代码实现

这个需求需要使用操作PDF神器PyPDF2库,首先安装该管理包

pip install PyPDF2

然后验证该管理包是否安装成功,可以再Python环境文件中import改库,如果没有保持这标识已经安装成功,你可以在项目中使用该库。


# 如果没有报错,表示成功导入 PyPDF2
import PyPDF2

这里主要使用PdfReaderPdfWriter这两个读写Api;

为了方便操作,这里集中将pdf文档都放到一个名为pdf的文件夹中,脚本程序去该文件夹中读取要操作的文件;

另外为了动态读取页面,将要获取的页码写在一个名为config.txt的文件中

具体代码实现

from PyPDF2 import PdfReader, PdfWriter
import glob
 
def split_combine(path, pdf_writer):
    pdf = PdfReader(path)
    print(len(pdf.<
Python中,可以使用`PyPDF2`库来提取PDF文件中的文本数据,对于更复杂的数据如表格、图像等,可能需要结合其他库如`tabula-py`(处理表格)、`Pillow`(处理图像)。以下是基本步骤: 1. **安装所需库**: 首先,你需要通过pip安装必要的库: ```bash pip install PyPDF2 tabula pillow ``` 2. **读取PDF文件**: 使用`PyPDF2`库打开并遍历PDF文档: ```python import PyPDF2 def extract_text_from_pdf(pdf_file): with open(pdf_file, 'rb') as file: pdf_reader = PyPDF2.PdfFileReader(file) text = '' for page in range(pdf_reader.numPages): text += pdf_reader.getPage(page).extractText() return text ``` 3. **提取特定数据**: 对于指定的数据,你可以搜索文本内容。例如,如果你想查找所有包含关键字的数据: ```python keyword = "your_search_keyword" extracted_data = [line for line in text.splitlines() if keyword in line] ``` 4. **处理表格数据**: 如果PDF中有表格,使用`tabula-py`提取: ```python from tabula import read_pdf table_data = read_pdf(pdf_file, pages='all') ``` 5. **处理图片数据**: 对于嵌入的图片,可以使用`PIL`来保存或分析: ```python from PIL import Image img_page = pdf_reader.getPage(0) # 获取包含图片的面 image = img_page.extractImage() im = Image.open(BytesIO(image)) ``` 6. **整合结果**: 根据实际需求将提取出的文字、表格和图片数据整理成所需的结构。 注意:PDF解析可能会遇到一些问题,比如加密的PDF、复杂的排版或OCR识别错误。对于这些问题,你可能需要进一步调整或使用更高级的库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝对零度HCL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值