欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Python 如何操作 PDF 文件?

Python 如何操作 PDF 文件?

2025/1/20 2:29:10 来源:https://blog.csdn.net/weixin_45710998/article/details/145162225  浏览:    关键词:Python 如何操作 PDF 文件?

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。

🔍 博客内容包括:

  • Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。
  • 大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Flink、Kafka、Redis、ECharts、Zookeeper等相关技术。
  • 开发工具:分享常用开发工具(IDEA、Git、Mac、Alfred、Typora等)的使用技巧,提升开发效率。
  • 数据库与优化:总结MySQL及其他常用数据库技术,解决实际工作中的数据库问题。
  • Python与大数据:专注于Python编程语言的深度学习,数据分析工具(如Pandas、NumPy)和大数据处理技术,帮助您掌握数据分析、数据挖掘、机器学习等技术。
  • 数据结构与算法:总结数据结构与算法的核心知识,提升编程思维,帮助您应对大厂面试挑战。

🌟 我的目标:持续学习与总结,分享技术心得与解决方案,和您一起探索技术的无限可能!在这里,我希望能与您共同进步,互相激励,成为更好的自己。

📣 欢迎订阅本专栏,与我一起在这个知识的海洋中不断学习、分享和成长!💻🚀


📍版权声明:本博客所有内容均为原创,遵循CC 4.0 BY-SA协议,转载请注明出处。

 

目录

1. 安装所需库

2. 使用 PyPDF2 操作 PDF 文件

2.1 合并多个 PDF 文件

2.2 拆分 PDF 文件

2.3 提取 PDF 文件的文本

3. 使用 pdfminer 提取 PDF 文本

3.1 提取 PDF 文件中的文本

4. 使用 reportlab 创建 PDF 文件

4.1 创建一个简单的 PDF 文件

4.2 在 PDF 中添加图像

5. 使用 PyMuPDF (fitz) 提取文本

5.1 提取 PDF 文件的文本

6. 对 PDF 文件进行加密和解密

6.1 使用 PyPDF2 对 PDF 进行加密

6.2 使用 PyPDF2 对 PDF 进行解密

总结


在 Python 中操作 PDF 文件的常用方法是使用专门的第三方库。这些库可以帮助你完成常见的操作,如读取 PDF 内容、提取文本、合并和拆分 PDF 文件、修改文件等。常用的库包括 PyPDF2pdfminerreportlab 等。下面是一些常见任务的示例。

1. 安装所需库

首先,需要安装必要的库。你可以使用以下命令来安装这些库:

pip install PyPDF2
pip install pdfminer.six
pip install reportlab

2. 使用 PyPDF2 操作 PDF 文件

PyPDF2 是一个非常流行的库,支持对 PDF 文件进行合并、拆分、加密、解密、旋转等操作。

2.1 合并多个 PDF 文件
import PyPDF2# 创建一个 PDF 合并器对象
pdf_merger = PyPDF2.PdfMerger()# 需要合并的 PDF 文件列表
pdf_files = ['file1.pdf', 'file2.pdf', 'file3.pdf']# 合并 PDF 文件
for pdf in pdf_files:pdf_merger.append(pdf)# 输出合并后的 PDF 文件
pdf_merger.write('merged_output.pdf')
pdf_merger.close()print("PDF 文件合并完成!")
2.2 拆分 PDF 文件
import PyPDF2# 打开 PDF 文件
with open('sample.pdf', 'rb') as file:reader = PyPDF2.PdfReader(file)# 获取 PDF 文件的页数total_pages = len(reader.pages)# 创建一个 PDF 写入器对象writer = PyPDF2.PdfWriter()# 拆分为每一页一个 PDF 文件for page_num in range(total_pages):writer.add_page(reader.pages[page_num])# 写入到新的 PDF 文件with open(f'page_{page_num + 1}.pdf', 'wb') as output_file:writer.write(output_file)print("PDF 文件拆分完成!")
2.3 提取 PDF 文件的文本
import PyPDF2# 打开 PDF 文件
with open('sample.pdf', 'rb') as file:reader = PyPDF2.PdfReader(file)text = ""# 提取所有页的文本for page_num in range(len(reader.pages)):page = reader.pages[page_num]text += page.extract_text()print("PDF 文件内容:")
print(text)

3. 使用 pdfminer 提取 PDF 文本

pdfminer.six 是一个专注于从 PDF 中提取文本的库,比 PyPDF2 更适合复杂的文本提取操作。它支持从 PDF 中提取文本和元数据。

3.1 提取 PDF 文件中的文本
from pdfminer.high_level import extract_text# 提取 PDF 文件中的文本
text = extract_text('sample.pdf')print("提取的文本内容:")
print(text)

4. 使用 reportlab 创建 PDF 文件

reportlab 是一个非常强大的库,主要用于生成 PDF 文件。它提供了丰富的 API 来设计和生成 PDF。

4.1 创建一个简单的 PDF 文件
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas# 创建一个 PDF 文件并绘制文本
def create_pdf(output_filename):c = canvas.Canvas(output_filename, pagesize=letter)c.drawString(100, 750, "Hello, this is a simple PDF created with ReportLab!")c.save()# 调用函数生成 PDF 文件
create_pdf("output.pdf")
print("PDF 文件创建完成!")
4.2 在 PDF 中添加图像
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvasdef create_pdf_with_image(output_filename):c = canvas.Canvas(output_filename, pagesize=letter)c.drawString(100, 750, "Here is an image below:")# 添加图像c.drawImage("image.jpg", 100, 500, width=200, height=150)  # 图像位置和大小c.save()create_pdf_with_image("pdf_with_image.pdf")
print("PDF 文件(带图像)创建完成!")

5. 使用 PyMuPDF (fitz) 提取文本

PyMuPDF 是一个处理 PDF、XPS、EPUB 等文件格式的库,功能非常强大且效率较高。你可以使用它来提取文本、图像和其他内容。

5.1 提取 PDF 文件的文本
import fitz  # PyMuPDF# 打开 PDF 文件
doc = fitz.open('sample.pdf')# 提取所有页面的文本
text = ""
for page_num in range(len(doc)):page = doc.load_page(page_num)text += page.get_text()print("PDF 文件的内容:")
print(text)

6. 对 PDF 文件进行加密和解密

6.1 使用 PyPDF2 对 PDF 进行加密
import PyPDF2# 打开 PDF 文件
with open('sample.pdf', 'rb') as file:reader = PyPDF2.PdfReader(file)writer = PyPDF2.PdfWriter()# 将 PDF 中的所有页面添加到 writer 对象中for page in reader.pages:writer.add_page(page)# 设置密码password = "your_password"writer.encrypt(password)# 写入加密后的文件with open('encrypted_sample.pdf', 'wb') as encrypted_file:writer.write(encrypted_file)print("PDF 文件加密完成!")
6.2 使用 PyPDF2 对 PDF 进行解密
import PyPDF2# 打开加密的 PDF 文件
with open('encrypted_sample.pdf', 'rb') as file:reader = PyPDF2.PdfReader(file)# 解密 PDF 文件password = "your_password"if reader.is_encrypted:reader.decrypt(password)# 创建一个 PDF 写入器对象writer = PyPDF2.PdfWriter()# 将解密后的页面添加到写入器中for page in reader.pages:writer.add_page(page)# 输出解密后的 PDF 文件with open('decrypted_sample.pdf', 'wb') as decrypted_file:writer.write(decrypted_file)print("PDF 文件解密完成!")

总结

使用 Python 处理 PDF 文件是非常常见的任务,通过不同的库,你可以实现 PDF 的各种操作:

  • PyPDF2:用于合并、拆分、加密、解密和提取文本。
  • pdfminer.six:专注于从 PDF 中提取文本,适合需要复杂文本解析的场景。
  • reportlab:用于生成 PDF 文件,支持绘图、添加文本、图片等。
  • PyMuPDF (fitz):支持高效地提取文本、图像等,并处理 PDF 文件。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com