软件测试|教你用Python处理PDF文件(一)

简介: 软件测试|教你用Python处理PDF文件(一)

image.png

前言

我们在工作中,难免会遇到需要处理PDF文件的情况,PDF文件与Word文件不同,内容提取不是很容易,表格和图片都需要特别处理。不过PDF有一个优势,PDF可以跨平台使用,Windows系统,Mac系统都可以打开PDF文件,不像doc文件,需要在word或者类似的软件中才能打开。

但是PDF文件的内容复制并不方便,要是能够使用Python将内容取出来的话,就会很舒服了!本文就来给大家介绍一下Python处理PDF文件的方法。

环境与资源准备

Python有一个非常优秀的处理PDF的第三方库——PyPDF2,这是一个开源免费的库,用于处理PDF文件,能够实现对PDF文件的分离、合并、裁剪、转换、加密、解密等操作。

安装如下:

pip install PyPDF2

资源准备

我们创建了一个PDF文件,文件名为test.pdf,文件第一页内容为拜仁慕尼黑,第二页主要内容为两张图片,第三页主要内容为一个表格。

提取PDF文本内容

在我们获取PDF文件内容前,我们需要先获取一下PDF文件的基本信息,比如页数和页面文本等。代码如下:

from PyPDF2 import PdfReader

reader = PdfReader("test.pdf")

# 总页数
number_of_pages = len(reader.pages)

# 第一页
page = reader.pages[0]
text = page.extract_text()
print(text)

--------------------------
输出内容如下:
拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑  

拜仁慕尼黑

PDF文件合并

同样地,我们也可以实现两个PDF文件的合并,代码如下:

import os
from PyPDF2 import PdfMerger

# pdf文件存放路径
src_path = 'files'

# 将待拼接的pdf文件以绝对路径的形式放在一个列表里
pdf_list = [f for f in os.listdir(src_path) if f.endswith('.pdf')]
pdf_list = [os.path.join(src_path, filename) for filename in pdf_list]

pdf_merger = PdfMerger()
for pdf in pdf_list:
    pdf_merger.append(pdf, import_outline=False)

pdf_merger.write("merged.pdf")

运行代码之后,我们就可以看到文件夹中多了一个merged.pdf文件,文件包含了合并的PDF文件的内容。

添加水印

如果我们想要为PDF文件添加水印,可以用于防伪等方面,那也是可以使用Python来实现的,代码如下:

from PyPDF2 import PdfWriter, PdfReader

# 读取作为水印的pdf
watermark = PdfReader("files/mark.pdf")

# 待加水印的pdf
reader = PdfReader("files/test.pdf")
page = reader.pages[0]

# watermark.pdf的第一页作为水印
page.merge_page(watermark.pages[0])

writer = PdfWriter()
writer.add_page(page)

# 保存成新的pdf
with open("output.pdf", "wb") as fp:
    writer.write(fp)

生成的PDF文件内容如下:

image.png

总结

本文主要介绍了使用Python读取PDF文件以及合并多个PDF文件,为PDF文件添加水印功能的实现,后续我们将为大家介绍为PDF加密与解密的操作。

相关文章
|
7月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1655 2
|
6月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1091 68
|
8月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
409 0
|
7月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
243 4
|
7月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
1748 0
|
8月前
|
程序员 数据安全/隐私保护 Python
1行Python代码,实现PDF的加密、解密
程序员晚枫分享使用python-office库实现PDF批量加密与解密的新方法。只需一行代码,即可完成单个或多个PDF文件的加密、解密操作,支持文件路径与正则筛选,适合自动化办公需求。更新至最新版,适配性更佳,操作更简单。
282 8
1行Python代码,实现PDF的加密、解密
|
8月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
260 0
|
8月前
|
监控 Linux 数据安全/隐私保护
Python实现Word转PDF全攻略:从入门到实战
在数字化办公中,Python实现Word转PDF自动化,可大幅提升处理效率,解决格式兼容问题。本文详解五种主流方案,包括跨平台的docx2pdf、Windows原生的pywin32、服务器部署首选的LibreOffice命令行、企业级的Aspose.Words,以及轻量级的python-docx+pdfkit组合。每种方案均提供核心代码与适用场景,并涵盖中文字体处理、表格优化、批量进度监控等实用技巧,助力高效办公自动化。
1690 0
|
9月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
2181 0
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。

热门文章

最新文章

推荐镜像

更多