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

Python PDF处理模块pypdf库详解 PDF(Portable Document Format)是一种常见的文档格式,广泛用于存储和共享文本和图像数据。在 Python 中,有许多库可以用于处理 PDF 文件,其中之一就是 PyPDF。PyPDF 是一个功能强大的库,它允许你读取、创建和操作 PDF 文件。本文将介绍 PyPDF 的基本概念、安装方法以及一些常见的用法示例,以帮助大家开始使用 PyPDF 处理 PDF 文件。 阅读详情

在这里插入图片描述

前言

我们在工作中,难免会遇到需要处理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文件内容如下:

在这里插入图片描述

总结

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

更多技术文章

Python操作PDF的全面指南 幸运的是,Python提供了许多强大的库和工具,可以方便地操作PDF文件。本文将介绍如何使用Python中的PyPDF2和PDFMiner库来读取、写入和修改PDF文件,并提供一些实用的示例代码。通过使用PDFMiner库,我们可以方便地提取和分析PDF文件中的文本内容。提取表格数据:PDFMiner可以提取PDF文件中的表格数据,并将其转换为结构化的数据格式,如CSV或Excel文件。处理页码和元数据:PDFMiner可以处理PDF文件中的页码信息,并提取与页面相关的元数据,如标题、作者、创建日期等。 阅读详情

相关推荐

100天精通Python(进阶篇)——第42天:pdfplumber读取pdf(基础+代码实战写入Excel)

全网最细pdfplumber读取PDF写入Excel详细教程

努力让自己发光,对的人才能迎着光而来 22万+

python操作PDF的几种常见方法

大家好,有关python操作pdf的方法,各种语言处理起来都比较麻烦,而且各种第三方库的应用场景都不同。下面说明一下python如何通过第三方库如何处理pdf文件。

qq_22941289的博客 9036

软件测试实习报告PDF交付:Pandoc渲染与pdfplumber校验

在软件测试交付场景中,报告不仅是文档,更是可核查的质量证据链。从测试计划、用例设计到执行记录与缺陷跟踪,数据口径决定结论可信度;而 Markdown 转 PDF 的渲染链路,则决定最终文件的目录书签、页码、代码块和图片清晰度是否达标。借助 Pandoc、XeLaTeX 或 WeasyPrint,格式可版本化复用;再用 pdfplumber、pypdf 反向校验页数、关键字与书签层级,能减少人工翻页。对实习生、测试组长和测试开发而言,这套方法可把“软件测试毕业实习报告.pdf”的撰写、渲染、合并、压缩与自动校

weixin_33863087的博客 316

如何使用Python 操作PDF?总结用Python操作PDF的几种方法

本篇文章小编给大家分享一个用python来操作pdf图像的几种方法,如果有需求的小伙伴一定要耐心阅读完这篇文章,小编希望能够通过这篇文章来给大家的学习带来一定的帮助。

weixin_68789096的博客 4706

如何使用obspy下载地震波形数据

如果你是地震研究学者,或者需要进行地震方面的研究,那么地震数据下载是一个必不可少的流程,本文将告诉你如何使用obspy下载想要的地震数据

monsterk1的博客 2077

Zabbix7.0实践:专线线路监控场景1

本文介绍了专线互联线路远程Ping监控的实现方案。针对运营商中间设备导致端口状态无法真实反映线路通断的问题,提出通过脚本执行端到端Ping检测的方案。具体实现包括:1)使用Expect脚本登录设备执行Ping测试并格式化结果;2)通过Shell脚本处理线路信息并生成JSON格式数据;3)配置Zabbix监控系统,创建自动发现规则和监控项原型,实现线路状态的自动监控。该方案适用于专线数量不多但重要的场景,能够有效检测中间有运营商设备的专线线路通断状态,最终在Zabbix中实现可视化的告警展示。

2301_80016499的博客 781

python提取pdf中的mp3文件

要从 PDF 文件中提取 MP3 文件,你需要进行以下步骤 1. 安装必要的库

公众号【伤心的辣条】资料领取~ 1226

浏览器主页被360篡改?教你彻底解决并预防再次发生

通过本文介绍的快捷方式修复、注册表清理、启动项管理三步法,可解决99%的浏览器主页篡改问题。权限最小化原则:非管理员账户日常使用,关键系统目录设置写保护定期安全审计:每月检查启动项/计划任务/浏览器扩展备份还原机制:创建系统还原点,重要操作前做好快照安全意识培养:不安装来源不明的软件,谨慎处理软件安装向导中的附加选项浏览器安全是系统防护的重要环节,建议结合EDR(终端检测与响应)方案构建立体防护体系。对于普通用户,保持系统更新、使用官方渠道下载软件、定期清理系统垃圾,即可有效预防绝大多数安全威胁。

nntxthml的博客 1万+

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

上一篇文章我们介绍了Python使用pypdf2实现读取PDF文件的文本内容,合并PDF文件,以及为PDF文件添加水印,本篇文章我们来介绍使用Python实现对PDF文件的加密解密。本文主要为大家介绍了使用Python为PDF文件加密解密的方法,加密解密是我们常用的操作,使用该方法,可以提高我们的工作效率。更多技术文章。

Tester_muller的博客 223

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

qq_63539957的博客 2万+

UE5 GAS实战:从零构建一个MOBA英雄技能系统

本文详细介绍了如何利用UE5的Gameplay Ability System(GAS)构建MOBA英雄技能系统,涵盖核心组件如Ability System Component和GameplayEffect的使用,以及技能冷却、资源管理和连招系统等高级功能的实现。通过实战案例和代码示例,帮助开发者快速掌握GAS在MOBA游戏开发中的应用。

weixin_29012765的博客 527

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

之前我们介绍了从PDF文件中提取文本内容以及从PDF文件提取图片的方法,除了文本内容与图片,表格也PDF文件中常见的内容,提取表格内容时,我们不再使用PyPDF2库来实现操作,Python有多个库来实现提取表格内容,本文我们将分别介绍多个库提取PDF中表格的操作。本文主要介绍了Python提取PDF表格内容的方法,如果我们只提取表格内容的话,使用tabula-py会更为理想一些。更多技术文章。

Tester_muller的博客 369

Calibre电子书阅读器个性化样式定制指南

本文详细介绍了如何通过Calibre电子书阅读器的用户样式表功能进行深度个性化样式定制。从修改全局字体、行距、背景配色(包括深色/浅色模式)到美化代码块、引用等特殊元素,本指南提供了完整的CSS代码示例与实战技巧,帮助用户打造专属的舒适阅读环境,显著提升电子书阅读体验。

vv45678的博客 920

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

我们之前介绍了提取PDF文件中的文字内容,我们使用PyPDF2即可实现操作,但是如果PDF文件有图片的话,只提取文本的话无法把图片的内容一起提取出来,我们需要另外的脚本来实现对图片的提取。本文主要介绍了使用PyPDF2库实现对PDF文件中的图片进行提取的操作,后续我们将介绍提取PDF文件中的表格内容。更多技术文章。

Tester_muller的博客 392

Allegro172版本如何在联机模式下使用skill文件操作指导

注意:如果下次重新开启Symphony模式的时候可能导致symphony_skill中的文件内容被清空,所以最好将自己常用的skill文件都写到symphony_skill.txt中去,然后做好备份,需要的时候,在开启软件后把文件放到env目录中去。在用Allegeo172版本进行PCB设计的时候,有时会用到Symphony模式进行多人实时在线协同设计,如下图。这个模式设计起来可以提升设计速度,但是也有一个缺陷,就是不能使用skill文件。如下图,当调用skill的时候就会出现如下报错。

weixin_54787054的博客 1586

EtherCAT ROS2 入门教程(一)

本文介绍了EtherCAT驱动与ROS2的集成方案,主要包括三部分内容:1)在Ubuntu 22.04上安装IgH EtherCAT主站的详细步骤,包括内核配置、源码编译和网络适配器设置;2)构建ethercat_driver_ros2,通过ros2_control描述文件配置硬件接口和EtherCAT从站模块插件;3)使用方法,包括启动EtherCAT主站和运行配置包。该方案支持通过参数文件定义硬件接口,并提供通用和专用两种EtherCAT模块插件,便于开发基于EtherCAT的工业应用。

机器人控制与仿真应用 1529

软件测试|使用Python生成PDF文件

PDF(Portable Document Format)是一种常用的文档格式,具有跨平台兼容性、保真性、安全性和交互性等特点。我们日常生活工作中的合同、报告、论文等通常都采用PDF格式,以确保文档在不同的操作系统(例如 Windows、Mac、Linux)和设备上被查看时都能保持外观的一致性。本文将介绍PDF最基本操作之: 使用Python创建PDF文档,并插入表格。本文主要介绍了使用Python来生成PDF文件的步骤,如果我们要向PDF中添加更多内容的话,还是建议大家使用reportlab。

百晓生说测试的博客 1250

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python 将pdf带:文字、表格、图片内容的文件转换成word

将PDF文件中的文字、表格和图片内容完整地转换为Word文档是一个复杂的任务,因为这涉及到对PDF内容的精确解析以及在Word文档中准确地重建这些内容。虽然直接从PDF完美转换到Word而不丢失格式或数据非常具有挑战性,但通过使用Python库,我们可以尽量接近这个目标。

伤心的辣条 909

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

一个神奇 Python 库,PyPDF2帮你在工作中轻松驾驭PDF

大家好,很多人学习Python进行办公自动化,其中一个场景就是处理PDF,PyPDF2是一个非常强大的Python库,它允许你管理和操作PDF文件。不论是分割、合并、旋转还是加密PDF,PyPDF2都能轻松应对。

伤心的辣条 941

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Python中的文件处理–为初学者学习Python文件处理

Python文件处理操作Python文件处理操作(也称为Python I / O)处理两种类型的文件。他们是:文字档二进制文件即使两种文件类型在表面上看起来相同,它们对数据的编码也不同。...

qqqqqkmbnjjhb的专栏 2103

python PDF常用的10个脚本

合并多个PDF文件from PyPDF2 import PdfMergerdef merge_pdfs(paths, output):    merger = PdfMerger()    for pdf in paths:        merger.append(pdf)    merger.write(output)    merger.close()paths = ['/path/to/file1.pdf', '/path/to/file2.pdf']output = '/path/to/merge

software_test010的博客 836

python 文件处理

1. Pillow (PIL) 场景: 使用Pillow进行图像处理,包括图像裁剪、旋转和添加水印。 2. imageio 场景: 使用imageio读取和写入多种格式的图像,并创建一个简单的动画GIF。

software_test010的博客 481

python对文件的处理_Python中的文件处理–为初学者学习Python文件处理

Python文件处理操作Python文件处理操作(也称为Python I / O)处理两种类型的文件。他们是:文字档二进制文件即使两种文件类型在表面上看起来相同,它们对数据的编码也不同。文本文件由一系列行构成。并且,文本文件的每一行都包含一个字符序列。文本文件中每行的终止都以行尾(EOL)表示。有一些特殊字符可以用作EOL,但逗号{,}和换行符是最常见的字符。.jpg,.png,.gif等图像文...

weixin_39984105的博客 378

PyPDF2如何实现按照PDF页码提取后并另存为PDF格式文件?

pdf_obj_writer.write(output_file_pdf) # 写入到指定文件【往期精彩】浪漫的turtle,送给程序员自己的圣诞树!PyQt5 GUI:百度图片下载器(文末附源码)自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

2401_83621784的博客 746

Python Excel,PDF,PPT自动处理脚本

1. 读取Excel文件 2. 写入Excel 3. 合并多个Excel文件 4. 读取Word文档 5. 写入Word文档 6. 读取PDF文本内容

伤心的辣条 969
上一篇: 软件测试|web自动化测试神器playwright教程(三十六)
下一篇: 软件测试|教你用Python处理PDF文件(二)
普通网友
博客等级 码龄4年 5624粉丝 1192原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值