Python 操作pdf pdfplumber读取PDF写入Exce


Posted in Python onAugust 14, 2022

1. Python 操作pdf(pdfplumber读取PDF写入Exce)

1.1 安装pdfplumber模块库

安装pdfplumber:

pip install pdfplumber

pdfplumber.PDF类

pdfplumber.PDF类表示单个PDF ,并具有两个主要属性:

属性 说明
pdf.metadata 从PDF的Info中获取元数据键/值对字典。通常包括"CreationDate,“ModDater","Producer"等
pdf.pages 返回一个包含pdfplumber. Page实例的列表,每一一个实例代表PDF每一页的信息

pdfplumber.Page类

pdfplumber.Page类常用属性

属性page_ number 说明
.page_ number 顺序页码,从1第一页开始,从第二页开始2 ,依此类推
.width 页面的宽度
.height 页面的高度
.objects/ . chars/ .lines/ .rects/ . curves/ .figures/ . images 这些属性中的每一个都是一 个列表, 每个列表包含一个字典 ,用于嵌入页面上的每个此类对象,有关详细信息,请参阅下面的“对象”。

常用方法:

方法名 说明
.extract_ text( ) 用来提页面中的文本,将页面的所有字符对象整理为的那个字符串
.extract_ words( ) 返回的是所有的单词及其相关信息
. extract_ tables() 提取页面的表格
.to_ _image() 用于可视化调试时,返回Pagelmage类的一个实例
.close() 默认情况下, Page对象缓存其布局和对象信息,以避免重新处理它,
但是在解析大型PDF时,这些缓存的属性可能需要大量内存。您可以使用此方法刷新缓存并释放内存。

1.2 常用操作

PDF是Portable Document Format的缩写,这类文件通常使用.pdf作为其扩展名。在日常开发工作中,最容易遇到的就是从PDF中读取文本内容以及用已有的内容生成PDF文档这两个任务。

  • 1.读取pdf文档信息
  • 2.输出总页数
  • 3.读取第一页宽度、高度等信息
  • 4.读取文本第一页

加载pdf:

  • pdfplumber.open( "路径/文件名. pdf".pas sword="test "laparams={ "line_ _overlap'”0.7 })
  •  password : 要加载受密码保护的PDF ,请传递password关键字参数
  • laparams :要将布局分析参数设置为pdfminer. six的布局引擎,请传递laparams关键字参数

1.2.1 Python读取pdf文件案例

pdf文件如下:

Python 操作pdf pdfplumber读取PDF写入Exce

1.2.2 Python读取pdf文件代码

import pdfplumber

# 加载pdf
path = "C:/Users/Administrator/Desktop/test08/test11 - 多页.pdf"
with pdfplumber.open(path) as pdf:
    print(pdf)
    print(type(pdf))

    # 读取pdf文档信息
    print("pdf文档信息:", pdf.metadata)

    # 输出总页数
    print("pdf文档总页数:", len(pdf.pages))

    # 1.读取第一页宽度、高度等信息
    first_page = pdf.pages[0]  # pdfplumber.Page对象第一页
    # 查看页码
    print('pdf页码:', first_page.page_number)
    # 查看页宽
    print('pdf页宽:', first_page.width)
    # 查看页高
    print('pdf页高:', first_page.height)

    # 2.读取文本第一页
    first_page = pdf.pages[0]  # pdfplumber.Page对象第一页
    text = first_page.extract_text()
    print(text)

执行结果:

"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/打卡/0811读取pdf.py
<pdfplumber.pdf.PDF object at 0x0000000002846278>
<class 'pdfplumber.pdf.PDF'>
pdf文档信息: {'Author': '', 'Comments': '', 'Company': '', 'CreationDate': "D:20220812102327+02'23'", 'Creator': 'WPS 表格', 'Keywords': '', 'ModDate': "D:20220812102327+02'23'", 'Producer': '', 'SourceModified': "D:20220812102327+02'23'", 'Subject': '', 'Title': '', 'Trapped': 'False'}
pdf文档总页数: 2
pdf页码: 1
pdf页宽: 595.25
pdf页高: 841.85
姓名 年龄 性别 地址 学习技能
张三 20 女 北京 python
李四 25 男 深圳 java
赵五 28 男 上海 C++
孙六 23 女 广州 python
钱七 27 男 珠海 python
张101 20 女 北京 python
.......
.......
张150 27 男 珠海 python
张151 20 女 北京 python
张152 25 男 深圳 java

Process finished with exit code 0

1.2.3 Python读取pdf文件存入Excel代码

import pdfplumber
import xlwt

# 加载pdf
path = "C:/Users/Administrator/Desktop/test08/test11 - 多页.pdf"
with pdfplumber.open(path) as pdf:
    page_1 = pdf.pages[0]  # pdf第一页
    table_1 = page_1.extract_table()  # 读取表格数据
    print(table_1)
    # 1.创建Excel对象
    workbook = xlwt.Workbook(encoding='utf8')
    # 2.新建sheet表
    worksheet = workbook.add_sheet('Sheet1')
    # 3.自定义列名
    clo1 = table_1[0]
    # 4.将列表元组clo1写入sheet表单中的第一行
    for i in range(0, len(clo1)):
        worksheet.write(0, i, clo1[i])
    # 5.将数据写进sheet表单中
    for i in range(0, len(table_1[1:])):
        data = table_1[1:][i]
        for j in range(0, len(clo1)):
            worksheet.write(i + 1, j, data[j])
    # 保存Excel文件分两种
    workbook.save('test88.xls')

执行结果:

Python 操作pdf pdfplumber读取PDF写入Exce

到此这篇关于Python 操作pdf pdfplumber读取PDF写入Exce的文章就介绍到这了,更多相关Python 操作pdf内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中去空格函数的用法
Aug 21 Python
Python内置函数dir详解
Apr 14 Python
python求解水仙花数的方法
May 11 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
python threading和multiprocessing模块基本用法实例分析
Jul 25 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 Python
Python叠加矩形框图层2种方法及效果
Jun 18 Python
Python中flatten( ),matrix.A用法说明
Jul 05 Python
深入分析python 排序
Aug 24 Python
python raise的基本使用
Sep 10 Python
Selenium关闭INFO:CONSOLE提示的解决
Dec 07 Python
Django url 路由匹配过程详解
Jan 22 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 #Python
基于Python实现nc批量转tif格式
Aug 14 #Python
LyScript实现绕过反调试保护的示例详解
Aug 14 #Python
LeetCode189轮转数组python示例
Aug 05 #Python
python语言中pandas字符串分割str.split()函数
Aug 05 #Python
python绘制云雨图raincloud plot
Aug 05 #Python
python计算列表元素与乘积详情
Aug 05 #Python
You might like
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
通过js脚本复制网页上的一个表格的不错实现方法
2006/12/29 Javascript
How to Auto Include a Javascript File
2007/02/02 Javascript
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
Python获取文件ssdeep值的方法
2014/10/05 Python
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
Python pandas常用函数详解
2018/02/07 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
override和overload的区别
2016/03/09 面试题
生日礼品店创业计划书范文
2014/03/21 职场文书
初三学生评语大全
2014/04/24 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
大学生在校表现评语
2014/12/31 职场文书
2016国庆促销广告语
2016/01/28 职场文书
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL