Python中pdfplumber与pypdf2库如何对pdf进行操作

本文详细介绍了如何使用Python的pdfplumber库和pypdf2库进行PDF文档处理,包括安装、基本用法、文本和表格的提取、PDF的读写、分割、合并、旋转、加密解密以及添加水印等操作,适合需要对PDF进行操作的开发者参考。

介绍

最近一个小demo需要对PDF进行操作,于是一不做而不休本着人人为我,我为人人的角度写我在做PDF操作时候用到的方法,同时也相当于给自己做知识普及,
pypdf2模块:
可以读取、写入、分割、合并PDF文件,需要单独安装

pdfplumber模块:
为了更好的读取PDF文件内容
可以提取PDF中的表格

因此若处理对象是PDF文档本身,则推荐使用pypdf2,如对 PDF 文档进行分割,合并, 插入等操作。
若处理对象是 PDF 文档中的文本,表格等内容,则推荐使用 pdfplumber。

pdfplumber使用方法

pdfplumber库按页处理 pdf ,获取PDF中的每个文本字符、矩形和行的详细信息,以及可以进行表格提取和可视化调试。主要应用于机器生成的PDF上,而非扫描的pdf文档。
具体介绍地址:https://github.com/jsvine/pdfplumber

安装

  1. RPM式系统(Redhat、CentOS)
pip install pdfplumber
  1. DEB式系统(Debian、Ubuntu)以下任一
pip install pdfplumber
apt install python-pdfplumber
  1. Windows
pip install pdfplumber

然后进行测试,如果能够正常显示则表明倒入成功。

使用

简单样例

import pdfplumber
with pdfplumber.open("test.pdf") as pdf:
    first_page = pdf.pages[0]
    print(first_page.chars[0])

其中:pdfplumber提供了两种读取pdf的方式:
pdfplumber.open("test.pdf")
pdfplumber.load(file_like_object)
这两种方法都返回pdfplumber.PDF类的实例(instance)。
加载带密码的pdf需要传入参数password,例如:
pdfplumber.open("file.pdf", password = "test")

提取单页pdf文字

import pdfplumber
with pdfplumber.open("test.pdf") as pdf:
    first_page = pdf.pages[0]
    text = first_page.extract_text()#提取文本
    print(text)

在这里插入图片描述

提取所有页pdf文字

import pdfplumber
with pdfplumber.open("test.pdf") as pdf:
    for page in pdf.pages: #遍历所有页码
        text = page.extract_text()#提取文本
        print(text)

提取所有pdf文字并写入文本中

import pdfplumber
with pdfplumber.open("test.pdf") as pdf:
    for page in pdf.pages:
        text = page.extract_text()#提取文本
        txt_file = open("test2.txt",mode='a',encoding='utf-8')
        txt_file.write(text)

提取PDF表格

pdfplumber的表检测方法大量借鉴了Anssi Nurminen的硕士学位论文),并受到Tabula的启发。 它是这样的:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酱江奖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值