Mukai Systems

PDFの暗号化

お客様との一部の文書のやり取りがPDFになった。従来は印刷、押印、郵送だったのでだいぶ楽になる。

要件として、PDFは暗号化されていないければならないが、なんのことはない。1

PyPDF2というモジュールを使用すると実現できることが分かった。

pip install PyPDF2

実装は以下のとおり。

import PyPDF2

def encpdf(org, dst, pw):
    with open(org, 'rb') as fin:
        rd = PyPDF2.PdfFileReader(fin)
        wr = PyPDF2.PdfFileWriter()
        for i in range(rd.numPages):
            wr.addPage(rd.getPage(i))
        wr.encrypt(pw)
        with open(dst, 'wb') as fout:
            wr.write(fout)

これで、以下のように使用できる。

encpdf('org.pdf', 'enc.pdf', 'password')

後は、用途に応じてdirectory walkerなり書いて使えばよい。

おしまい。


[1] 参考までに無償のAdobe Acrobat Readerではパスワードの暗号化はできないらしい。いい商売ですね。