みなさん、こんにちは。
パスワード付きのPDFファイルをパスワード無しで保存する方法を紹介したいと思います。
パスワード付きのPDFファイルをパスワード無しで保存
注意:パスワードが分からないPDFを開くわけではありません。
パスワード付きPDFファイルを開くときに、毎回パスワードを入力する必要があります。このパスワードを入力する作業が面倒なので、パスワード無しのPDFファイルにしちゃおうということです。
プログラムの内容
フォルダに複数のパスワード付きのPDFファイルが保存されています。そのフォルダ内のファイルをすべてパスワード無しのPDFとして保存します。
下記の制限でプログラムを作っていこうと思います。
- パスワードはすべて同じ
- パスワード無しのPDFファイルは別フォルダに保存する
- フォルダ内にPDFファイル以外のものがある
必要なライブラリ
今回は『pikepdf』と『os』を使います。
- pikepdfはPDFのファイル操作用に使用します。
- osはフォルダ内のファイル検索用に使用します。
osは標準でインストールされていますが、pikepdfはインストールされていません。インストールされていなければ、下記のコマンドを実行してインストールして下さい。
pip install pikepdf
ソースコード
は、ソースコードを見ていきましょう。
import os
import pikepdf
filefolder = 'C:/Labo/locked/'
filefolder2 = 'C:/Labo/unlocked/'
for count, filename in enumerate(os.listdir(filefolder)):
if ".pdf" in filename:
oldfilename = filefolder + filename
newfilename = filefolder2 + filename
pdf = pikepdf.open(oldfilename, password="password")
pdf.save(newfilename)
1、2行目 ライブラリの呼び出し
ライブラリを呼び出します。
4、5行目 ファイルの保存場所、保存先を定義
filefolder にパスワード付きのPDFファイルのフォルダ、filefolder2 にパスワード無しのPDFファイルのフォルダを定義します。
8行目 フォルダ内のファイルを取得
for count, filename in enumerate(os.listdir(filefolder)):
os.listdirを使ってフォルダ内のファイルを取得します。所得したファイル名はfilenameに格納されます。
countにはカウントされた数字が格納されます。countは使用しませんが、上記のコマンドでエラーが発生する為、便宜上入れています。
9行目 PDFファイルだけを選別
if ".pdf" in filename:
ファイル名に”.pdf”が含まれていることで、PDFファイルだけを選別するようにしています。厳密にいえば、後方検索をするべきですが、これで十分だと思います。
10、11行目 絶対パスのファイル名の作成
oldfilename にはパスワード付きのファイル名、newfilename にはパスワード無しのファイル名を定義します。
後の処理で、PDFファイルを扱う時に、絶対パスでファイル名を定義しなければならないので、パスをファイル名に追加しています。
13行目 パスワード付きPDFを開く
pdf = pikepdf.open(oldfilename, password="password")
passwordの部分は実際のパスワードを入力して下さい。因みにパスワード無しのPDFファイルを開ける際は、下記のようにpasswordなしで記述して下さい。
pdf = pikepdf.open(oldfilename)
14行目 パスワード無しで保存
パスワード無しで保存します。
pdf.save(newfilename)
違うパスワードで保存する時
違うパスワードで保存する時は下記のようにします。password, password2の所に、設定したいパスワードを記入して下さい。それぞれのパスワードで開くことが出来ます。
pdf.save(newfilename, encryption=pikepdf.Encryption(user="password", owner="password2"))
まとめ
いかだったでしょうか。
給与明細書などはパスワード付きのPDFファイルであったりする場合が多いと思います。こういうファイルは同じパスワードなので、わざわざパスワードを入力するのは面倒ですよね。そういう時は、上記のプログラムを起動させて、パスワード無しのファイルにしてみてはいかがでしょうか。
「役に立った!」と思れましたら、下のSNSボタンで記事のシェアをしていただけると嬉しいです!
コメント