👉 项目官网:https://www.python-office.com/ 👈

github star

大家好,这里是程序员晚枫,正在all in AI编程实战

PDF文件要加水印保护、要加密、要拆分?今天全部搞定!

1、PDF加水印

给 PDF 加文字水印:

1
2
3
4
5
6
7
8
9
10
import office

# 加文字水印
office.pdf.add_watermark(
path='合同.pdf',
output_file='带水印合同.pdf',
text='机密文件', # 水印文字
opacity=0.3, # 透明度
rotation=45 # 旋转角度
)

加图片水印:

1
2
3
4
5
6
7
8
import office

office.pdf.add_watermark(
path='报告.pdf',
output_file='带Logo报告.pdf',
image='logo.png', # 水印图片
opacity=0.2
)

2、PDF加密

给 PDF 设置密码:

1
2
3
4
5
6
7
8
9
10
import office

# 加密PDF
office.pdf.encrypt(
path='机密文件.pdf',
output_file='加密文件.pdf',
password='123456' # 密码
)

print('PDF已加密!')

解密 PDF(知道密码的情况下):

1
2
3
4
5
6
7
8
import office

# 解密PDF
office.pdf.decrypt(
path='加密文件.pdf',
output_file='解密文件.pdf',
password='123456'
)

3、PDF拆分

把一个 PDF 按页面拆分:

1
2
3
4
5
6
7
8
import office

# 提取指定页面
office.pdf.split(
path='长文档.pdf',
page_list=[1, 3, 5], # 提取第1、3、5页
output_file='提取页.pdf'
)

按范围拆分:

1
2
3
4
5
6
7
8
import office

# 拆分成多个PDF(前10页一个,后10页一个)
office.pdf.split_by_range(
path='长文档.pdf',
ranges=[(1, 10), (11, 20)],
output_folder='拆分结果'
)

4、PDF合并

把多个 PDF 合并成一个:

1
2
3
4
5
6
import office

office.pdf.merge(
file_list=['第1章.pdf', '第2章.pdf', '第3章.pdf'],
output_file='完整版.pdf'
)

5、PDF压缩

减小 PDF 文件大小:

1
2
3
4
5
6
7
8
9
import office

office.pdf.compress(
path='大文件.pdf',
output_file='压缩后.pdf',
quality='medium' # low/medium/high
)

print('PDF压缩完成!')

6、实战案例:批量给合同加水印

给文件夹里所有 PDF 加水印:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import office
import os

def batch_add_watermark(folder):
"""批量给PDF加水印"""
count = 0

for file in os.listdir(folder):
if file.endswith('.pdf'):
src = os.path.join(folder, file)
dst = os.path.join(folder, f'水印_{file}')

office.pdf.add_watermark(
path=src,
output_file=dst,
text='仅限内部使用',
opacity=0.2
)
count += 1
print(f'已处理: {file}')

print(f'共处理 {count} 个文件!')

batch_add_watermark('合同文件夹')

7、实战案例:批量加密PDF

给所有 PDF 设置密码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import office
import os

def batch_encrypt(folder, password):
"""批量加密PDF"""
for file in os.listdir(folder):
if file.endswith('.pdf'):
src = os.path.join(folder, file)
dst = os.path.join(folder, f'加密_{file}')

office.pdf.encrypt(
path=src,
output_file=dst,
password=password
)
print(f'已加密: {file}')

batch_encrypt('重要文件', password='2024secret')

8、常见问题

Q:加水印后文件变大了?

A:正常现象,可以用 compress 压缩一下。

Q:解密密码忘了怎么办?

A:无解,密码无法找回,请牢记密码。

Q:Mac上能加密吗?

A:可以,但部分功能需要 Windows 环境。

9、下讲预告

学会了 PDF 高级操作,下一讲我们学 文件搜索:快速找到电脑里的任意文件。

敬请期待!


有问题欢迎加微信 python-office 进群交流~

程序员晚枫专注AI编程培训,小白看完他和图灵社区合作的教程《30讲 · AI编程训练营》就能上手做AI项目。

🎓 AI 编程实战课程

想系统学习 AI 编程?程序员晚枫的 AI 编程实战课 帮你从零上手!