python pdf解密脚本(pikepdf模块)

python pdf解密脚本(pikepdf模块)

如果一个pdf文件被加密了,我们就不能复制和编辑该文件,这非常影响我们记笔记等操作。借助pikedef模块(github)我们可以轻松解密被加密的pdf。

pikepdf模块安装:

pip install pikepdf

简单的使用:
假设我在当前目录下又一个被加密的pdf文件locked.pdf,我们用pikepdf打开它再重新保存就可以完成pdf解密

import pikepdf
pdf = pikepdf.open('./locked.pdf')
pdf.save('unlocked.pdf')

这里是一个基于pikepdf的pdf解密脚本unlocker.py:

#!/Users/don/anaconda3/bin/python

import os
import sys
import pikepdf

def unlock_file(file):
	pdf = pikepdf.open(file, allow_overwriting_input=True)
	pdf.save(file)


def unlock_directory(folder = './'):
	os.chdir(folder)
	filelist = os.listdir()
	for file in filelist:
		if os.path.splitext(file)[1] == '.pdf':
			unlock_file(file)

if __name__ == '__main__':

	if len(sys.argv) == 1:
		unlock_directory()
	else:
		target = sys.argv[1]
		if (os.path.isdir(target)):
			unlock_directory(target)
		else:
			unlock_file(target)

	print('done')

可以直接通过python unlocker.py pdf文件名 来运行,指解密并替换输入的pdf文件
也可以传入一个目录,会将该目录下所有的pdf文件解密并替换
如果不穿入参数,直接运行python unlocker.py 即默认操作目录为当前目录

如果觉得每次运行都要输入python比较麻烦,可以在unlock.py第一行上加入python路径:#! + python路径,在我的电脑上就是#!/Users/don/anaconda3/bin/python,可以通过在命令行输入 which python 来查看自己的python路径
之后再运行 chmod u+x ./unlocker.py ,就可以直接通过 ./unlocker.py 来运行脚本啦

你可能感兴趣的:(方便的脚本,python)