以下是根据您提供的内容重构的代码:

```python

from PyPDF2 import PdfReader, PdfWriter

import natsort

# 提取文本

def extract_text(pdf_path):

with open(pdf_path, 'rb') as file:

reader = PdfReader(file)

text = ''

for page in reader.pages:

text += page.extract_text()

return text

# 拆分PDF

def split_pdf(pdf_path, output_dir):

with open(pdf_path, 'rb') as file:

reader = PdfReader(file)

for i, page in enumerate(reader.pages):

writer = PdfWriter()

writer.add_page(page)

output_path = f"{output_dir}/page_{i + 1}.pdf"

with open(output_path, 'wb') as output_file:

writer.write(output_file)

# 合并PDF

def merge_pdfs(input_files, output_path):

pdf_writer = PdfWriter()

for input_file in input_files:

with open(input_file, 'rb') as file:

pdf_reader = PdfReader(file)

for page in pdf_reader.pages:

pdf_writer.add_page(page)

with open(output_path, 'wb') as output_file:

pdf_writer.write(output_file)

# PDF加密

def encrypt_pdf(input_path, output_path, password):

with open(input_path, 'rb certlib '__vb File打开 '')br encodingbak modeentr strbra '

PDF文件的解密和提取图片的方法如下:

1. PDF解密:PDF文件的结构和内容不同部分的访问权限是在文件级别进行设置的,而不是在单个对象级别进行设置的。因此无法直接在现有的PDF文件上进行就地加密。但是可以通过PyMuPDF库中的fitz模块实现解密。实质上也是创建一个新副本。这里的解密指的是去掉已知的密码,并不是破解。

2. 提取图片:通过PyMuPDF库中的fitz模块实现。fitz.open()提供了比较全面的PDF处理功能,可以读取、写入、编辑和渲染PDF文件。它支持文本提取、图像提取、页面操作、注释处理、文档结构访问等功能,并且具有高度的兼容性和性能。PyPDF2.PdfReader主要用于读取和解析PDF文件的内容。它可以获取PDF文件的各个页面、文本、链接、注释等元素,并提供了一些便捷的方法来操作PDF文件的内容。PyPDF2功能相对较基础,适合简单的PDF处理需求 。