【Python】pdfファイルのパスワードを解除しよう!

pdf

こんにちは!

皆さんは、パスワード付きのpdfファイルをもらったことはありませんか?

パスワード付きのpdfファイルは、パスワードを入力してファイルを開いても、一度閉じるともう一度パスワードを入力しないといけません。

何度も見るファイルだった場合は毎回パスワードを入力するのは面倒ですよね。
pdfのパスワード自体を解除できたら便利とは思いませんか?

そこで今回は、Pythonでpdfファイルのパスワードを解除する方法を紹介していきます。

残念ながら今回の記事は、pdfファイルのパスワードがわからない場合には使用できないのでご注意ください。



1. 使用するライブラリ

今回使用するライブラリは、「pikepdf」というライブラリです。

pikepdfをインストールするには以下のコマンドを入力しましょう。

pip install pike pdf

pdfを扱うライブラリで有名な「PyPDF2」というライブラリがあるのですが、このライブラリを使用してパスワードを解除できる暗号化には制限があります。

具体的には、PyPDF2で解除できる暗号化は「RC4」のみで、「AES」は解除できないみたいです。

pikepdfでは上記のどちらの暗号化でも解除できるので、今回はこのライブラリを使用していきます。

ちなみにpikepdfでも、pdfを公開鍵で暗号化したものは解除できないみたいです。(僕は詳しくないのでこの暗号化方式は全然知りません)


2. パスワードを解除する

では早速パスワードを解除するプログラムを見ていきましょう。

パスワードを解除後は、新しいpdfが作成されます。

ディレクトリ構成は以下のようになっています。

以下のプログラムは、パスワードの設定された「samplepdf.pdf」のパスワードを解除して、「unlocked.pdf」に内容を書き出すプログラムです。

from pikepdf import Pdf

password = 'password'   #pdfのパスワード

filename = "samplepdf.pdf"   #パスワードを解除したいpdfの名前
newfilename = "unlocked.pdf"   #パスワード解除後のpdfの名前

pdf = Pdf.open(filename, password=password)
pdf_unlock = Pdf.new()
pdf_unlock.pages.extend(pdf.pages)
pdf_unlock.save(newfilename)

実行結果

「unlocked.pdf」という名前のpdfファイルが作成されています。
このファイルは、見てもわかるように鍵マークがついていないため、パスワードが解除できていますね。

「sample pdf.pdf」と「unlocked.pdf」に書かれている内容はもちろん同じです。


3. まとめ

いかがでしたか?
pdfファイルのパスワードの解除方法について理解できたでしょうか。

pdfファイルのパスワード解除には「pikepdf」というライブラリを使用します。

Pythonでpdfファイルのパスワード解除ができるようになると、一度にたくさんのpdfファイルのパスワードを解除できるようになるのでとても便利です。

ゼひパスワード解除の方法を覚えておきましょう!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です