LoginSignup
4
6

More than 3 years have passed since last update.

Pythonでパスワード付きのPDFを、パスワード無しのPDFとして別名保存するスクリプト

Posted at

はじめに

パスワード付きのPDFは開くたびにパスワードの入力を求められてストレスが溜まります。そのストレスをぶつけたらスクリプトが出来ましたので紹介します。

PythonにおけるPDFの扱い

おそらくPythonでPDFを読み書きしようとすると、まずPyPDF2というライブラリを使う事になると思います。しかしながらパスワードロック解除については、限定された条件のPDFにしか対応していないため、C++のライブラリのqpdfなどとの合わせ技にせざるを得ません。

pikepdf

マイナーなライブラリでpikepdfというものがあり、MPL ライセンスなのでたぶんライセンス表記しておけば怒られないんだろうと思います。このライブラリはqpdfを内蔵?しているようなので、前述のケースとは違い、ライブラリはpikepdfだけで完結します。
pip install pikepdf でインストール可能です。

完成品

https://github.com/Kanahiro/PDFUnlocker
こちらにスクリプトの完成品をアップしてあります。こきたないコードですが許してください。
zipファイルの中身はWindows32bit環境で動作する(であろう)実行ファイル一式です。Pyinstallerで作成しました。ほんとは--onefileで使いたかったんですけど、ライブラリ周りでこけたので諦めました。PDFファイル名を「(パスワードの文字列).pdf」として、.exeにドラッグドロップすると、パスワードが解除されたPDFファイルが「decrypt.pdf」として出力されます。

おわりに

ライブラリは神、ライブラリを作る人は神の上か!?
ぼくもライブラリかけるようなおとなになりたいと思いました。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6