pdftk
是一个用于处理PDF文件的命令行工具,它可以合并、拆分、移除、旋转、加密、解密PDF文件。
在 Ubuntu20.04 中可通过 apt 安装
sudo apt install pdftk
合并
# 方式1
pdftk in1.pdf in2.pdf cat output out.pdf
# 方式2:使用句柄
pdftk A=in1.pdf B=in2.pdf cat A B output out.pdf
# 方式3:使用通配符
pdftk *.pdf cat output out.pdf
# 单双页面交错合并
pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf
# 若odd.pdf中的页面是倒序(Bend-1表示从B文件的最后一页到第一页):
pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output collated.pdf
拆分
# 提取前4页为一个pdf文件
pdftk in.pdf cat 1-4 output part1.pdf
# 提取第5页到最后为一个pdf文件
pdftk in.pdf cat 5-end output part2.pdf
# 将每一页保存为一个pdf文件
pdftk in.pdf burst
移除
# 删除特定页面,如删除第5-7页(保留其它页):
pdftk in.pdf cat 1-4 8-end output out.pdf
# 移除第一页和最后一页,r2表示倒数第2页
pdftk in.pdf cat 2-r2 output out.pdf
旋转
# 将整个文档顺时针旋转90度
pdftk in.pdf cat 1-endeast output out.pdf
# 将第1页顺时针旋转90度,其它页不变
pdftk in.pdf cat 1east 2-end output out.pdf
# 将第2页顺时针旋转90度,其它页不变
pdftk in.pdf cat 1 2east 3-end output out.pdf
# 将第1到3页顺时针旋转180
pdftk in.pdf cat 1-3south 4-end output out.pdf
# 将第1页顺时针旋转90度,第2页旋转180度,第3页旋转270度
pdftk in.pdf cat 1east 2south 3west 4-end output out.pdf
- north (N): 0度(默认方向)
- east (E): 顺时针90度
- south (S): 顺时针180度
- west (W): 顺时针270度
加密
# 使用128位加密(默认),foopass是所有者密码
pdftk in.pdf output out.pdf owner_pw foopass
# 使用40位加密
pdftk in1.pdf in2.pdf cat output out.pdf encrypt_40bit owner_pw foopass
# 加密,foo是所有者密码,baz是用户密码,需要密码才能打开文件
pdftk in.pdf output out.pdf owner_pw foo user_pw baz
# 允许打开后可以打印
pdftk in.pdf output out.pdf owner_pw foo user_pw baz allow printing
使用 allow
选项可设置权限:
- Printing:允许打印
- DegradedPrinting:低质量打印
- ModifyContents:修改内容
- Assembly:文档组装
- CopyContents:复制内容
- ScreenReaders:屏幕阅读器
- ModifyAnnotations:修改注释
- FillIn:填写表单
解密
# 解密,生成未加密文件
pdftk in.pdf input_pw foopass output out.pdf