汇知百科
白蓝主题五 · 清爽阅读
首页  > 系统软件

用Python脚本处理PDF的实用技巧

批量合并PDF文件

工作中经常需要把多个PDF文件合并成一个,比如把每月的报表整理成年度汇总。手动操作费时又容易出错,用Python几行代码就能搞定。

from PyPDF2 import PdfMerger

merger = PdfMerger()

# 添加要合并的文件
pdf_list = ['1月.pdf', '2月.pdf', '3月.pdf']
for pdf in pdf_list:
    merger.append(pdf)

merger.write('年度报表.pdf')
merger.close()

拆分指定页面

有时候只需要PDF中的某几页,比如合同里的签字页。与其打印整份文件,不如直接提取出来。

from PyPDF2 import PdfReader, PdfWriter

reader = PdfReader('合同全文.pdf')
writer = PdfWriter()

# 提取第5页(索引从0开始)
page = reader.pages[4]
writer.add_page(page)

with open('签字页.pdf', 'wb') as f:
    writer.write(f)

给PDF加水印

共享资料时不想被随意使用,可以加个半透明水印。这个功能在行政办公中特别实用。

from PyPDF2 import PdfReader, PdfWriter

reader = PdfReader('文档.pdf')
watermark = PdfReader('水印.pdf').pages[0]
writer = PdfWriter()

for page in reader.pages:
    page.merge_page(watermark)
    writer.add_page(page)

with open('带水印文档.pdf', 'wb') as f:
    writer.write(f)

提取文本内容

发票、通知类PDF需要提取关键信息录入系统。虽然识别效果受排版影响,但简单文本基本没问题。

from PyPDF2 import PdfReader

reader = PdfReader('通知.pdf')
page = reader.pages[0]
text = page.extract_text()
print(text)

加密保护文件

发给客户的资料加上密码,防止外泄。设置密码后别人必须输入口令才能打开。

from PyPDF2 import PdfReader, PdfWriter

reader = PdfReader('项目方案.pdf')
writer = PdfWriter()

for page in reader.pages:
    writer.add_page(page)

# 设置打开密码
writer.encrypt('your_password')

with open('加密文件.pdf', 'wb') as f:
    writer.write(f)