如何使用Python替换PDF文件中的指定文本
Python实现PDF文档文本替换功能
基于PyPDF2可以实现简单PDF的文本替换,核心逻辑是直接读取页面内容流做字节级替换后重新生成PDF,适合无加密、文本存储连续的常规PDF文件。
首先安装依赖库:
pip install PyPDF2
可直接运行的参考实现代码如下:
from PyPDF2 import PdfFileReader, PdfFileWriter # 在这里配置替换规则,支持多组替换 replacements = [ ("old string", "new string") ] # 读取本地原PDF文件,路径替换为你自己的文件路径 pdf = PdfFileReader(open(r'C:\Users\DELL-PC\Desktop\text augmentation.pdf', "rb")) writer = PdfFileWriter() for page in pdf.pages: contents = page.getContents().getData() # 逐组执行字节级替换 for (old_text, new_text) in replacements: contents = contents.replace(old_text.encode('utf-8'), new_text.encode('utf-8')) page.getContents().setData(contents) writer.addPage(page) # 输出修改后的PDF with open("modified.pdf", "wb") as f: writer.write(f)
使用时需要修改的配置项:
- 在
replacements列表中添加你需要的文本替换对,格式为("原文本", "替换后的文本") - 将PdfFileReader传入的文件路径改为你本地待处理PDF的实际存储路径
- 可修改输出文件的文件名,默认生成在代码运行的同目录下
注意:该方案仅适用于简单格式的PDF。如果待处理PDF存在字体子集化、文本被排版引擎拆分为多个碎块存储、是扫描件转成的图片PDF,上述字节替换的方法会失效。这类复杂场景建议换用PyMuPDF库,通过匹配文本坐标、覆盖原区域重绘文本的方式实现替换,兼容性更好。
内容的提问来源于stack exchange,提问作者madhavi soni
相关产品推荐
相关产品推荐

