【python实用小脚本-187】Python一键批量改PDF文字:拖进来秒出新文件——再也不用Acrobat来回导

Python一键批量改PDF文字:拖进来秒出新文件------再也不用Acrobat来回导

PDF文字替换, 批量导出, 零依赖转档, 一键完成, 瑞士军刀

故事开场:一把瑞士军刀救了周五下班的你

周五 18:00,老板甩来 50 份合同 PDF:

"把里面的'2023'全部改成'2024',今晚就要!"

你打开 Acrobat,发现要:

  1. 先导出 Word
  2. 逐个查找替换
  3. 再导回 PDF
    来回三遍,眼睛已花。
    这时,你从 U 盘掏出"小白瑞士军刀"------pdf_editor.py。
    把 PDF 拖进去,一行命令:
bash 复制代码
python pdf_editor.py

30 秒后,50 份新 PDF 整整齐齐躺在文件夹,老板直呼"效率王"!

痛点解决:再也不用巨软全家桶,一键改字、一键导出。


完整代码(≤1000字符,直接展示)

python 复制代码
from docx import Document
from pdf2docx import parse
import subprocess, os

def pdf_to_word(pdf_file):
    parse(pdf_file, 'word.docx')

def edit_word(find, replacement):
    doc = Document('word.docx')
    for p in doc.paragraphs:
        if find in p.text:
            p.text = p.text.replace(find, replacement)
    doc.save('converted.docx')

def word_to_pdf():
    subprocess.run(["libreoffice", "--headless", "--convert-to", "pdf", 'converted.docx'])
    for tmp in ['word.docx', 'converted.docx']:
        if os.path.exists(tmp):
            os.remove(tmp)

if __name__ == "__main__":
    file, find, replace = input("格式:文件 旧文本 新文本> ").split()
    pdf_to_word(file)
    edit_word(find, replace)
    word_to_pdf()

代码解析

功能块 1:PDF → Word 零门槛

pdf2docx.parse 一行把 PDF 变成可编辑的 .docx,保留格式。

python 复制代码
parse(pdf_file, 'word.docx')

功能块 2:全文快速替换

遍历所有段落,直接 str.replace,比 Word 查找更快。

python 复制代码
for p in doc.paragraphs:
    if find in p.text:
        p.text = p.text.replace(find, replacement)

功能块 3:Word → PDF 一键回

用 LibreOffice 无头模式批量转 PDF,再清理中间文件。

python 复制代码
subprocess.run(["libreoffice", "--headless", "--convert-to", "pdf", 'converted.docx'])

如果还想更厉害

扩展点子 1:批量文件夹

把整目录 PDF 一次性改字,自动按原名输出。

python 复制代码
import glob
for pdf in glob.glob('*.pdf'):
    pdf_to_word(pdf)
    edit_word('2023', '2024')
    word_to_pdf()
    os.rename('converted.pdf', pdf.replace('.pdf', '_new.pdf'))

扩展点子 2:GUI拖放窗口

用 tkinter 做窗口,拖文件+输入框即完成。

python 复制代码
import tkinter.filedialog as fd
pdf_path = fd.askopenfilename()
# 复用上面三步

总结

pdf_editor.py 这把 40 行瑞士军刀,把"PDF→Word→替换→PDF"四步压缩成"拖进去+回车"。

你无需安装 Acrobat,就能在 Linux/Mac/Windows 上批量改字、批量导出。

再加两行循环或 GUI,它就从脚本升级成 PDF 工厂。

下次再遇"批量改合同",直接跑脚本,省时省力!

源码获取

完整代码已开源,包含详细的注释文档:

🔗 GitCode仓库 https://gitcode.com/laonong-1024/python-automation-scripts

📥 备用下载 https://pan.quark.cn/s/654cf649e5a6 提取码:f5VG

相关推荐
呆呆敲代码的小Y6 小时前
【实战精选面试题】C# 面试题详细解答,按难易程度排序
android·java·游戏·c#·游戏开发·unity面试题·c#面试题
reasonsummer6 小时前
【办公类-04-05】20261030整理手机照片(华为手机助手导出照片到日期文件夹+批量添加四级文件夹+手动转移照片更名+更改三级文件夹合并汉字名称)
python·智能手机
淡海水6 小时前
09-01-内存-Unity资源生命周期全景
unity·c#·游戏引擎·.netcore·gc
BD_Marathon7 小时前
【Python】初识迭代器
python
gz927cool7 小时前
Python 全栈应用最佳实践完整指南
开发语言·python·ai
智购科技智能售货柜7 小时前
顾客已经关门,视觉售货柜还在处理旧画面:延迟积压怎么查?~YH
python·单片机·嵌入式硬件·物联网·eclipse
梯度下降者7 小时前
Python从0到100(三):Python中的变量介绍
python·作用域·变量·数据类型·计算机常识
AIFQuant7 小时前
Python期货行情API接入:股指、黄金、原油多品种数据管道实战
开发语言·python·金融·区块链·量化开发
威哥爱编程8 小时前
Python 智能体开发实战 07:让它查课表它张口就编?给 Agent 接上真正能动手的工具
python·agent
Wang's Blog8 小时前
Java 项目实战:交友项目 - 即时通信总结:全链路复盘、可复用清单与自检
java·python·交友