Python 办公自动化封神篇:PDF+Word 全自动处理,从此告别复制粘贴!
·
前言
每天对着一堆 PDF 合并拆分、Word 改格式、手动做报表?重复操作又累又容易错,Python 几行代码就能全自动搞定!
这篇不讲废话、不搞应试,全是能直接用在工作 / 学习 / 小项目的干货,从读取、创建、批量生成到美化排版,一步一行讲明白,看完就能自己写自动化工具!
一、环境一键安装(必看第一步)
处理 PDF 和 Word 需要专用工具库,打开 CMD / 终端运行这行命令:
pip install PyPDF2 python-docx reportlab
PyPDF2:PDF 读取、合并、加密、拆分神器python-docx:Word 创建、编辑、美化、做表格全能库reportlab:从零生成全新 PDF,做报告专用
安装没报错,就可以直接开干!
二、PDF 全自动实战(逐行精讲 + 可直接运行)
1. 从 PDF 里提取文字(复制资料再也不用手打)
很多 PDF 不能复制、不能编辑,用 Python 直接把文字扒出来!
from PyPDF2 import PdfReader
def pdf_get_text(pdf_path):
# 打开PDF文件,rb代表以二进制只读模式打开
reader = PdfReader(pdf_path)
# 准备一个空字符串存所有文字
all_text = ""
# 遍历PDF每一页
for page in reader.pages:
# 提取当前页文字
page_text = page.extract_text()
# 加到总文字里
all_text += page_text + "\n"
return all_text
# 调用函数,把你的PDF文件名填进去
content = pdf_get_text("测试文件.pdf")
# 打印前500个字看看效果
print(content[:500])
代码讲解
PdfReader:专门用来读 PDF 的工具,不用自己解析复杂格式reader.pages:获取 PDF 所有页,循环就能一页页读page.extract_text():核心提取功能,自动把页面文字转成字符串- 最终返回完整文本,可直接保存到 TXT/Word 里
2. 多个 PDF 一键合并(整理资料神器)
几十份 PDF 要合并成一个?Python 秒级完成!
from PyPDF2 import PdfReader, PdfWriter
def merge_pdf(pdf_files, save_name):
# 创建一个空白PDF写入器
writer = PdfWriter()
# 遍历所有要合并的PDF
for file in pdf_files:
# 打开单个PDF
reader = PdfReader(file)
# 把每一页加到新PDF里
for page in reader.pages:
writer.add_page(page)
# 保存最终合并后的文件
with open(save_name, "wb") as f:
writer.write(f)
print("合并完成!")
# 使用示例,把你要合并的文件填进列表
merge_pdf(["1.pdf", "2.pdf", "3.pdf"], "合并完整版.pdf")
代码讲解
PdfWriter:相当于一个空白 PDF 本子,专门用来装内容add_page(page):把其他 PDF 的页 “撕下来” 贴到新本子里- 最后
write保存,支持任意数量 PDF 合并
3. PDF 加密保护(重要文件不被乱看)
给私密 PDF 设置密码,别人打不开,只有你能看!
from PyPDF2 import PdfReader, PdfWriter
def pdf_encrypt(input_file, output_file, pwd):
reader = PdfReader(input_file)
writer = PdfWriter()
# 先把所有页复制过去
for page in reader.pages:
writer.add_page(page)
# 设置密码加密
writer.encrypt(pwd)
# 保存加密文件
with open(output_file, "wb") as f:
writer.write(f)
print("加密成功!")
# 使用
pdf_encrypt("原文件.pdf", "加密版.pdf", "123456")
代码讲解
encrypt(密码):一行给 PDF 上锁- 加密后打开必须输入密码,安全性拉满
4. 从零生成全新 PDF(自动做报告)
不用 Word、不用编辑器,Python 直接生成干净 PDF!
from reportlab.pdfgen import canvas
def create_new_pdf(save_path, content):
# 创建一张PDF画布
c = canvas.Canvas(save_path)
# 画标题,坐标(100,750)代表从左100、从上750开始写
c.drawString(100, 750, "Python自动生成PDF报告")
# 画正文内容
c.drawString(100, 720, content)
# 保存文件
c.save()
print("PDF创建成功!")
# 使用
create_new_pdf("自动报告.pdf", "这是全自动生成的内容,不用手动打字!")
代码讲解
canvas.Canvas:创建空白 PDF 页面drawString(x,y,文字):在指定位置写字- 可扩展加表格、图片、标题样式,做成专业报表
三、Word 自动化封神操作(逐行精讲 + 美化排版)
1. 读取 Word 全文(快速提取内容)
不管是报告、论文、简历,都能一键读出来!
from docx import Document
def read_word(file_path):
# 打开Word文档
doc = Document(file_path)
full_text = ""
# 遍历所有段落
for para in doc.paragraphs:
full_text += para.text + "\n"
return full_text
# 使用
text = read_word("测试文档.docx")
print(text)
代码讲解
Document:打开 Word 的核心对象paragraphs:Word 里的所有段落,循环就能全部提取- 自动保留格式结构,干净无乱码
2. 创建精美 Word(标题 + 正文 + 列表)
自动生成带格式的文档,不用手动调字体字号!
from docx import Document
from docx.shared import Pt
def create_beautiful_word():
# 新建空白Word
doc = Document()
# ========== 添加标题 ==========
title = doc.add_paragraph()
title_run = title.add_run("Python自动化办公专业文档")
# 设置字号18号、加粗
title_run.font.size = Pt(18)
title_run.bold = True
# ========== 添加正文 ==========
doc.add_paragraph("这是第一段正文内容,格式自动设置完成。")
doc.add_paragraph("这是第二段正文内容,可无限添加。")
# ========== 添加项目列表 ==========
doc.add_paragraph("• 功能1:PDF全自动处理", style="List Bullet")
doc.add_paragraph("• 功能2:Word批量生成", style="List Bullet")
# 保存文件
doc.save("自动生成文档.docx")
print("Word创建成功!")
create_beautiful_word()
代码讲解
Pt(18):设置字体大小,对应 Word 里的字号bold = True:文字加粗,突出标题List Bullet:自动生成项目符号列表,格式工整
3. 批量生成邀请函 / 通知书(最强实用功能)
一份名单,自动生成每个人独立文档,1 秒搞定几十份!
from docx import Document
def make_invitation(name):
doc = Document()
# 标题
doc.add_paragraph(f"尊敬的 {name} 先生/女士:").bold = True
# 正文
doc.add_paragraph(" 诚挚邀请您参加本次活动,感谢您一直以来的支持与陪伴,期待您的莅临!")
doc.add_paragraph("\n此致\n敬礼!")
# 按姓名保存
doc.save(f"邀请函_{name}.docx")
# 名单列表
name_list = ["张三", "李四", "王五", "赵六"]
# 循环批量生成
for name in name_list:
make_invitation(name)
print("所有邀请函生成完毕!")
代码讲解
- 循环遍历名单,自动替换姓名
- 每份文档独立命名,不混乱、不重名
- 可扩展加日期、编号、单位名称,做成正式文件
4. Word 里自动做表格(成绩 / 清单 / 报表)
不用手动画表格,Python 一键生成规整表格!
from docx import Document
def create_word_table():
doc = Document()
doc.add_paragraph("学生成绩表").bold = True
# 4行3列表格
table = doc.add_table(rows=4, cols=3)
table.style = "Table Grid"
# 表头
h_cells = table.rows[0].cells
h_cells[0].text = "姓名"
h_cells[1].text = "年龄"
h_cells[2].text = "成绩"
# 填入数据
data = [["小明", "18", "95"], ["小红", "18", "98"], ["小刚", "18", "92"]]
for i, row_data in enumerate(data, 1):
cells = table.rows[i].cells
cells[0].text = row_data[0]
cells[1].text = row_data[1]
cells[2].text = row_data[2]
doc.save("成绩表.docx")
print("表格生成完成!")
create_word_table()
代码讲解
add_table(行,列):创建指定大小表格Table Grid:自带边框,打开就是完整表格- 循环填数据,支持批量导入 Excel 内容
四、三大爆款实战项目
项目 1:PDF 全自动整理工具
功能:
- 扫描文件夹所有 PDF
- 自动提取文字
- 按关键词分类移动到不同文件夹适用:资料整理、论文归档、批量处理
项目 2:每日自动报告生成器
功能:
- 读取数据
- 自动生成 Word
- 一键转 PDF适用:工作日报、周报、统计报表
项目 3:批量通知书制作系统
功能:
- 导入名单
- 自动填充姓名、日期、编号
- 批量导出独立文档适用:学校、公司、活动组织
五、全文总结(看完就能用)
Python 办公自动化真的简单又暴力:
- PDF:提取、合并、加密、新建,全部几行搞定
- Word:读取、创建、美化、批量、做表格,全能适用
- 不用复杂逻辑,复制代码改文件名就能运行
- 每天节省 1~2 小时重复劳动,效率直接起飞
不用再手动复制粘贴、不用再熬夜做报表,Python 就是办公神器!
更多推荐



所有评论(0)