以下是根据您提供的内容重构的代码:
```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处理需求 。