Python的pdfplumber库将PDF文件转成图片文件的实现

什么是pdfplumber

pdfplumber 是一个用Python编写的库,主要用于解析PDF文件并提取其中的内容,如文本、图像、表格等。该库专注于从PDF文档中抽取结构化信息,并且能够保留原始布局和格式的细节,如字体样式、颜色和位置等。

通过使用 pdfplumber,开发者可以轻松地读取PDF文档中的每一页,并以编程方式访问其内容。例如,可以获取指定页码上的所有文本、精确测量文本块的位置、或者将PDF中的表格转换为数据结构(如pandas DataFrame),以便进一步的数据处理或分析。

pdfplumber 的一些主要功能包括:

打开并读取PDF文件:通过 pdfplumber.open() 函数打开PDF文件并返回一个可迭代的对象。

访问页面内容:遍历PDF文件的各个页面,每个页面都是一个 pdfplumber.Page 对象,包含页面的所有内容元素。

文本提取:按照原始布局提取文本内容,包括字符级别的信息。

表格提取:识别并提取PDF中的表格结构,转化为类似二维列表的数据结构,方便进一步转换成pandas DataFrame等格式。

图形元素:支持对线条、矩形、曲线等图形元素进行提取和分析

如何安装pdfplumber

pip install pdfplumber

具体的代码实现

import pdfplumber
import os


def clearHistoryFile(pathDir, prefix, suffix):
    """
    清空pathDir目录中,以prefix为前缀,以suffix为后缀的文件
    :param pathDir:目录地址,例如:D:\code\python\AutoForFreedom\data
    :param prefix:文件前缀
    :param suffix:文件后缀,例如 .png
    :return: None
    """
    # 遍历目录
    for filename in os.listdir(pathDir):
        # 检查是否满足删除的文件条件
        if filename.startswith(prefix) and filename.endswith(suffix):
            # 构建完整路径
            filePath = os.path.join(pathDir, filename)
            # 确保是文件而非目录
            if os.path.isfile(filePath):
                # 删除文件
                os.remove(filePath)
                print(f"已删除文件: {filePath}")
    return None


def convertPDFToImage(filePath, targetDir):
    """
    将PDF文件转化成image图片
    :param filePath: 示例 D:\code\python\AutoForFreedom\data\zoomlion\Python办公自动化之PDF篇笔记.pdf
    :param targetDir: 示例 D:\code\python\AutoForFreedom\logs
    :return: None
    """
    # 获取原始的去除后缀的文件名称
    fileName = os.path.splitext(os.path.basename(filePath))[0]
    # 清空目标目录中之前生成的关于该文件的图片
    clearHistoryFile(targetDir, fileName, '.png')
    # 将文件转成图片并存储到目标目录中
    with pdfplumber.open(filePath) as pdfFile:
        # 遍历pdf文件页
        for index, page in enumerate(pdfFile.pages):
            # 生成图片并保存
            pageImage = page.to_image()
            targetFile = os.path.join(targetDir, f'{fileName}_p{index + 1}.png')
            pageImage.save(targetFile)
            print(f"已生成文件{targetFile}")
    return None


if __name__ == '__main__':
    # pdf文件含路径
    fileName = 'D:\code\python\AutoForFreedom\data\zoomlion\Python办公自动化之PDF篇笔记.pdf'
    # 图片存放目录
    targetDir = 'D:\code\python\AutoForFreedom\logs'
    convertPDFToImage(fileName, targetDir)

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值