こんにちは!
皆さんは、パスワード付きのpdfファイルをもらったことはありませんか?
パスワード付きのpdfファイルは、パスワードを入力してファイルを開いても、一度閉じるともう一度パスワードを入力しないといけません。
何度も見るファイルだった場合は毎回パスワードを入力するのは面倒ですよね。
pdfのパスワード自体を解除できたら便利とは思いませんか?
今回の記事では、Pythonでpdfファイルのパスワードを解除する以下の方法を紹介していきます。
- pikepdfを使用してpdfファイルのパスワードを解除する方法
pikepdf
今回使用するライブラリは、「pikepdf」というライブラリです。
A Python library for reading and writing PDF, powered by QPD…
pikepdfとは
pikepdfとは、pdfのパスワード解除のためのPythonライブラリです。
pdfを扱うライブラリで有名な「PyPDF2」というライブラリがあるのですが、このライブラリを使用してパスワードを解除できる暗号化には制限があります。
具体的には、PyPDF2で解除できる暗号化は「RC4」のみで、「AES」は解除できないみたいです。
pikepdfでは上記のどちらの暗号化でも解除できるので、今回はこのライブラリを使用していきます。
ちなみにpikepdfでも、pdfを公開鍵で暗号化したものは解除できないみたいです。(僕は詳しくないのでこの暗号化方式は全然知りません)
pikepdfのインストール方法
pikepdfをインストールするには以下のコマンドを入力しましょう。
pip install pike pdf
パスワードの解除方法
では早速パスワードを解除するプログラムを見ていきましょう。
パスワードを解除後は、新しいpdfファイルが作成されます。
ディレクトリ構成は以下のようになっています。
pdfpass.pyは、pdfのパスワードを解除するためのプログラム
samplepdf.pdfは、「password」とパスワードが設定されたサンプル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)
解説
この部分で、pdfファイルとパスワードを指定して、pdfファイルを開きます。
この部分で、パスワード解除したpdfファイルを保存するための新しいpdfファイルを作成します。
最後にこの部分で、作成したpdfファイルを保存します。
実行結果
「unlocked.pdf」という名前のpdfファイルが作成されています。
このファイルは、見てもわかるように鍵マークがついていないため、パスワードが解除できていますね。
「sample pdf.pdf」と「unlocked.pdf」に書かれている内容はもちろん同じです。
パスワードが分かっているpdfファイルのパスワードを解除する際に使用しましょう。
pdfのパスワードを解除できたら、pdfからテキスト抽出してみても面白いですね。
こんにちは! 皆さんはpdfファイルからテキストを抽出したいと思ったことはありませんか? 今回の記事では、以下のpdfファイルの抽出方法を紹介します。 pdfminer.sixを使ったpdfファイルの抽出方法 本ブロ[…]
まとめ
今回の記事では、Pythonでpdfファイルのパスワードを解除する以下の方法を紹介しました。
- pikepdfを使用してpdfファイルのパスワードを解除する方法
→パスワードがついたpdfファイルのパスワードを解除して
新しくpdfを作成
Pythonでpdfファイルのパスワード解除ができるようになると、一度にたくさんのpdfファイルのパスワードを解除できるようになるのでとても便利です。
ゼひパスワード解除の方法を覚えておきましょう!