我把pdfplumber整成了可以拖拉拽的web软件

前几天我发了一篇文章《从PDF中提取Excel,这个工具真的好用》,受到很多的关注和评论,方法是用Python的开源库pdfplumber来实现对PDF上表格和文本的提取,非常方便和快捷。

pdfplumber是专门用来处理PDF的第三方库,完全开源和免费,它最核心的功能是提取PDF的文本和表格,支持保留段落、换行、空格的原始格式,不会像某些库那样把不同区域的文本混在一起,是我体验下来最好用的PDF处理库。

pdfplumber可以对PDF进行基本查询和编辑。

  • page_number:页码
  • width/height:页面尺寸
  • rotation:旋转角度
  • bbox:页面边界框
  • crop(bbox):裁剪指定区域
  • rotate(angle):旋转页面
  • to_image():生成可视化页面

同时支持提取PDF文本和表格,这是pdfplumber的强项。

  • extract_text():保留布局的整页文本提取
  • extract_text_simple():忽略布局的简单文本提取
  • get_textbox(bbox):提取指定区域文本
  • extract_table(table_settings={}):提取页面第一个表格
  • extract_tables(table_settings={}):提取页面所有表格
  • find_tables():查找表格边界框
  • extract_images():提取页面所有图像

pdfplumber使用也很简单,比如说提取PDF页面。

import pdfplumber

with pdfplumber.open("path/to/file.pdf") as pdf:
    first_page = pdf.pages[0]
    print(first_page.chars[0])

虽然在Python上使用pdfplumber提取PDF文本表格并不难,但这仅限于懂Python的同学,如果你不会Python,那也是没办法用pdfplumber操作PDF,只能求助于付费软件。

我突发奇想用pdfplumber搭建了个PDF文本表格提取应用,可以实现拖拉拽实现操作,不需要任何的代码。

这个应用是基于streamlit开发的,在浏览器上打开使用,它支持的PDF操作包括:

1、支持拖拽导入PDF,并查看PDF基本信息
2、支持提取PDF文本、表格
3、支持导出Markdown、Word、TxT、Json格式文件
4、支持拉取所有表格,并导出Excel格式文件
5、支持将PDF转换为Word文件,并保持样式
6、支持DeepSeek生成PDF文本摘要

下面以一份PDF行业报告为例,咱们用这个工具去提取文本和表格,速度非常快。

首先将PDF拖到打开栏里,点击处理PDF。

在这里插入图片描述

它就会将完整的文本提取出来,并显示PDF的基本信息。

点击表格功能,这个PDF所有的表格都会单独呈现出来,并可以下载Excel文件。

下载的Excel包含所有PDF表格,且高度还原格式。

你可以将提取的文本导出为Word、Markdown、txt、Json格式文件。

导出的Markdown文件如下:

还可以直接将PDF原封不动转换为Word文件。


我还在这个应用里植入了DeepSeek总结功能可以提炼PDF摘要。

以上就是这个web应用的功能,应该是比较适合日常办公处理PDF。

如何安装这个应用呢?

因为它是基于Python streamlit开发的,所以会有一些依赖库,在使用前需要安装到本地电脑,包括:

# Core PDF processing
pdfplumber==0.11.0
PyPDF2==3.0.1
pdf2docx==0.5.8

# AI API integration
requests==2.31.0
openai==1.12.0

# Document generation
python-docx==1.1.0
markdown==3.5.2

# Web framework
streamlit==1.31.0
streamlit-extras==0.3.6

# Data processing
pandas==2.2.0
numpy==1.26.4
openpyxl==3.1.2

# Async processing
aiohttp==3.9.3

# Utilities
python-dotenv==1.0.1
Pillow==10.2.0
tqdm==4.66.1

# Logging
loguru==0.7.2

当然这里默认你的电脑上已经安装好Python,并配置好以上依赖,然后你就可以通过以下命令进入该应用。

streamlit run app.py

或者直接点击文件夹里的run批处理文件,就能直接启动应用。

我写了详细的readme,你可以根据指引来安装使用。

想要下载可以去我的Github仓库,地址如下:

https://github.com/zhuweijun1003-source/pdf2text

### 支持拖拉功能的工具或软件推荐 以下是一些支持拖拉功能的工具或软件,涵盖不同领域的需求: #### 1. **APICloud Studio** APICloud Studio 是一款基于 VSCode 深度定制的开发工具,提供云端一体的用户体验。它通过可视化拖功能,帮助开发者快速生成前端页面,并自动生成 AVM 跨端代码[^1]。该工具内置丰富的 UI 组件,支持全流程开发,包括项目管理、代码编写与调试、预览以及编译发布等功能,极大提升了开发效率。 #### 2. **Smartbi 自助仪表盘** Smartbi 是一款专注于数据分析的工具,支持通过鼠标拖拉的方式完成数据集准备、可视化探索和仪表盘制作[^3]。这款工具特别适合运营人员使用,无需深厚的技术背景即可完成复杂的数据分析任务。此外,Smartbi 提供了高性能的数据处理能力,能够通过抽取数据到 MPP 数据库来保证分析性能。 #### 3. **PaintCode 或 Sketch** 对于图形设计领域,PaintCode 和 Sketch 是两款支持拖拉功能的优秀工具。PaintCode 允许用户绘制图形并将其转换为代码,而 Sketch 则是一款矢量绘图工具,支持通过拖元素快速创建界面原型。这两款工具都提供了丰富的插件支持,可以满足不同场景下的设计需求。 #### 4. **Figma** Figma 是一款在线协作设计工具,支持多人实时协作和拖拉操作。用户可以通过简单的拖方式创建界面原型、调整布局、添加交互效果等。Figma 还支持导出设计稿为多种格式,便于开发团队直接使用。 #### 5. **Draw.io (现称 Diagrams.net)** Draw.io 是一款免费的流程图和图表绘制工具,支持通过拖拉的方式快速创建流程图、UML 图、网络拓扑图等。它还提供了丰富的模板和图标库,用户可以根据需求自由组合元素[^2]。 #### 6. **Trello** Trello 是一款项目管理工具,支持通过拖拉的方式管理任务卡片。用户可以在看板上移动任务卡片,调整优先级或状态,非常适合敏捷开发团队使用。 ### 示例代码:实现简单的拖拉功能 以下是一个使用 HTML 和 JavaScript 实现简单拖拉功能的示例: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Drag and Drop Example</title> <style> #draggable { width: 100px; height: 100px; background-color: lightblue; position: absolute; } </style> </head> <body> <div id="draggable">拖我</div> <script> const draggable = document.getElementById('draggable'); let offsetX, offsetY; draggable.addEventListener('mousedown', (e) => { offsetX = e.clientX - draggable.offsetLeft; offsetY = e.clientY - draggable.offsetTop; document.addEventListener('mousemove', onMouseMove); document.addEventListener('mouseup', onMouseUp); }); function onMouseMove(e) { draggable.style.left = `${e.clientX - offsetX}px`; draggable.style.top = `${e.clientY - offsetY}px`; } function onMouseUp() { document.removeEventListener('mousemove', onMouseMove); document.removeEventListener('mouseup', onMouseUp); } </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@Python大数据分析

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

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

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

打赏作者

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

抵扣说明:

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

余额充值