乐于分享
好东西不私藏

告别PDF手动复制!这个skill神器让你一键搞定表格、合并与拆分

告别PDF手动复制!这个skill神器让你一键搞定表格、合并与拆分

你是不是也遇到过这样的场景?

老板发来一份50页的PDF报告,让你只提取其中第15-20页,还要把所有表格整理成Excel。你打开PDF,一页页复制粘贴,眼睛都快看瞎了,结果发现表格格式全乱了😭

或者,你手上有10个PDF文件,需要把它们合并成一份完整的资料发给客户。你打开某个在线工具,上传、等待、下载...结果发现免费版有水印,付费又觉得不值得。

别急!今天我要给你安利一个PDF处理神器——基于pypdf和pdfplumber的Python工具包,让你从此告别这些烦恼。它就像PDF世界的瑞士军刀,切割、合并、提取、旋转,样样精通!

更棒的是,完全免费,代码简单到小白都能上手。你只需要会一点点Python基础,就能让你的工作效率翻10倍!

项目亮点 🔥

✨ 一键提取表格:PDF里的复杂表格秒变结构化数据,再也不用手动复制粘贴

✂️ 智能拆分合并:支持任意页面拆分、多文档合并,就像剪裁纸张一样简单

📄 文本精准提取:保持原始排版,支持中英文混合内容

🔄 页面旋转调整:横版竖版随意转,打印阅读都方便

🎯 元数据读取:标题、作者、创建时间等信息一目了然

解决什么痛点?😫

让我给你讲个小故事。

上周三下午3点,我的朋友小王接到一个紧急任务:客户发来一份30页的年度财报PDF,需要提取其中第5-10页的所有财务数据表格,然后合并到另一份汇报文档里。

按照以前的做法,小王得这样操作:

  1. 打开PDF,找到第5页
  2. 选中表格,复制
  3. 粘贴到Excel,发现格式全乱
  4. 手动调整列宽、行高、合并单元格
  5. 重复10遍...
  6. 再打开另一个PDF,复制、粘贴...

等他弄完,已经是晚上7点了。关键是,还漏了一个表格,被老板批评不够细心😤

而现在有了这个PDF工具包,小王只需要写10行代码,3秒钟就能搞定所有提取和合并工作。不仅快,而且准确率100%,不会漏掉任何一个数据。


手把手教程 🚀

别被代码吓到,跟着我一步步来,你也能成为PDF处理大师!

➤ 第一步:环境安装

打开你的终端(Windows用cmd或PowerShell),输入下面这行命令:

pip install pypdf pdfplumber

等待几秒钟,看到“Successfully installed”就说明安装成功啦!

小提示:如果你用的是Mac或Linux,可能需要先输入pip3而不是pip

➤ 第二步:提取PDF中的文字

假设你有一个叫“报告.pdf”的文件,想提取里面所有的文字内容:

from pypdf import PdfReader# 读取PDF文件reader = PdfReader("报告.pdf")# 获取总页数print(f"这个PDF一共有{len(reader.pages)}页")# 提取所有文字全部文字 = ""for 页码 in reader.pages:    全部文字 += 页码.extract_text()# 打印出来看看print(全部文字)# 保存到txt文件withopen("提取的文字.txt""w", encoding="utf-8"as f:    f.write(全部文字)

就这么简单!3行核心代码,所有文字都乖乖跑出来啦。


➤ 第三步:合并多个PDF文件

你手上有三个PDF:合同1.pdf、合同2.pdf、合同3.pdf,想合并成一个完整的文件?

from pypdf import PdfWriter, PdfReader# 创建一个写入器合并器 = PdfWriter()# 要合并的文件列表文件列表 = ["合同1.pdf""合同2.pdf""合同3.pdf"]# 逐个读取并添加for 文件名 in 文件列表:    读取器 = PdfReader(文件名)for 页面 in 读取器.pages:        合并器.add_page(页面)# 保存合并后的文件withopen("完整合同.pdf""wb"as 输出文件:    合并器.write(输出文件)print("合并完成!快去看看吧~")

就像整理文件一样,把几份文档按顺序叠在一起,装订成册。是不是很直观?

➤ 第四步:拆分PDF(提取指定页面)

只需要第5-10页,其他的都不要?

from pypdf import PdfReader, PdfWriter# 读取原始文件读取器 = PdfReader("大报告.pdf")写入器 = PdfWriter()# 提取第5页到第10页# 注意:PDF页码从0开始,所以第5页对应索引4for 页码 inrange(410):    写入器.add_page(读取器.pages[页码])# 保存新文件withopen("第5-10页.pdf""wb"as 输出文件:    写入器.write(输出文件)print(f"已提取{len(写入器.pages)}页")

如果你想要拆分成每页一个独立文件:

读取器 = PdfReader("大报告.pdf")for i, 页面 inenumerate(读取器.pages):    单页写入器 = PdfWriter()    单页写入器.add_page(页面)withopen(f"第{i+1}页.pdf""wb"as 输出文件:        单页写入器.write(输出文件)print(f"已保存第{i+1}页")

➤ 第五步:旋转页面(拯救歪脖子文档)

有些扫描件页面方向不对,横竖混排看得脖子疼?

from pypdf import PdfReader, PdfWriter读取器 = PdfReader("扫描件.pdf")写入器 = PdfWriter()# 把第一页旋转90度第一页 = 读取器.pages[0]第一页.rotate(90)  # 顺时针旋转90度写入器.add_page(第一页)# 其他页面不变for 页码 inrange(1len(读取器.pages)):    写入器.add_page(读取器.pages[页码])withopen("旋转后.pdf""wb"as 输出:    写入器.write(输出)print("旋转完成!现在文档是正的了~")

➤ 第六步:提取PDF表格(这才是重头戏!)

这是最让人头疼的部分,但用pdfplumber就简单多了:

import pdfplumber# 打开PDFwith pdfplumber.open("财务报表.pdf"as pdf:# 遍历每一页for 页码, 页面 inenumerate(pdf.pages):# 提取当前页的所有表格        表格列表 = 页面.extract_tables()if 表格列表:print(f"第{页码+1}页发现了{len(表格列表)}个表格")# 处理第一个表格            第一个表格 = 表格列表[0]for 行 in 第一个表格:print(行)  # 打印每一行数据# 如果你想保存成Excel,可以用pandas(需要先安装:pip install pandas)import pandas as pd            df = pd.DataFrame(第一个表格)            df.to_excel(f"第{页码+1}页表格.xlsx", index=False)

是不是超级简单?表格直接变成结构化数据,再也不用手动对齐了!

➤ 第七步:获取PDF元数据(作者、标题等)

from pypdf import PdfReader读取器 = PdfReader("报告.pdf")元数据 = 读取器.metadataprint(f"标题: {元数据.title}")print(f"作者: {元数据.author}")print(f"主题: {元数据.subject}")print(f"创建工具: {元数据.creator}")print(f"生成工具: {元数据.producer}")

这些信息有时候能帮你快速了解文档来源,特别适合整理大量文件时使用。


进阶小技巧 💡

如果你经常处理财务报表、研究论文,可以试试这个组合技:

import pdfplumberimport pandas as pd# 一次性提取所有页面的所有表格所有表格 = []with pdfplumber.open("多表格文档.pdf"as pdf:for i, 页面 inenumerate(pdf.pages):        表格 = 页面.extract_tables()if 表格:for j, 表 inenumerate(表格):                df = pd.DataFrame(表)                所有表格.append(df)                df.to_excel(f"第{i+1}页_表{j+1}.xlsx", index=False)print(f"总共提取了{len(所有表格)}个表格")

这段代码会自动把PDF里所有的表格都提取出来,分别保存成Excel文件,省时省力!


同类项目对比 📊

市面上PDF处理工具不少,我帮你对比一下:

维度
本项目(pypdf+pdfplumber)
Adobe Acrobat
在线PDF工具站
价格
完全免费
年费¥1000+
免费版有限制,高级版付费
表格提取能力
优秀,保持结构
良好
一般,常出现乱码
批量处理
支持,代码批量操作
需手动操作
通常有数量限制
隐私安全
本地处理,数据不上传
本地处理,安全
需上传文件,有泄露风险
自定义程度
极高,可编程
学习门槛
需要基础Python知识
零门槛
零门槛
处理速度
快(本地运算)
慢(依赖网速和服务器)
适用场景
批量处理、自动化流程
零散的单次编辑
偶尔使用

简单来说:

  • 如果你只是偶尔处理一两个PDF,在线工具更方便
  • 如果你经常处理PDF且预算充足,Adobe是成熟选择
  • 如果你需要批量处理、表格提取、自动化流程,或者注重隐私安全,那这个Python工具包绝对是最佳选择!

写在最后 📝

看到这里,你已经掌握了用Python处理PDF的核心技能!

回顾一下,你能做到这些事:✅ 提取任意页面的文字和表格✅ 合并多个PDF文件✅ 拆分出你需要的页面✅ 旋转调整页面方向✅ 读取文档元数据

而且所有操作都在你的电脑本地完成,不用担心文件上传到云端的安全风险。

记住这三个核心库:

  • pypdf:负责基础操作(合并、拆分、旋转、提取元数据)
  • pdfplumber:专攻复杂表格提取
  • pandas:把表格保存成Excel

下次再遇到PDF处理的难题,别急着手动复制粘贴,花5分钟写几行Python代码,让电脑替你干活!

如果你觉得这篇文章对你有帮助,欢迎转发给你的同事和朋友,让他们也告别PDF处理焦虑。有什么问题也可以在评论区留言,我会尽力解答~

现在,去试试用这个神器处理一个你手头的PDF吧!相信我,你会回来感谢我的😉