当前位置:   article > 正文

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

python pdf

在这里插入图片描述

前言

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

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

环境与资源准备

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

安装如下:

pip install PyPDF2
  • 1

资源准备

我们创建了一个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)

--------------------------
输出内容如下:
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
 
拜仁慕尼黑  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

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")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

运行代码之后,我们就可以看到文件夹中多了一个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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

生成的PDF文件内容如下:

在这里插入图片描述

总结

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

更多技术文章

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/51718
推荐阅读
相关标签
  

闽ICP备14008679号