【第56回PYTHON講座】パスワード付きのPDFをパスワード無しで保存

PYTHON

みなさん、こんにちは。

パスワード付きのPDFファイルをパスワード無しで保存する方法を紹介したいと思います。

パスワード付きのPDFファイルをパスワード無しで保存

注意:パスワードが分からないPDFを開くわけではありません

パスワード付きPDFファイルを開くときに、毎回パスワードを入力する必要があります。このパスワードを入力する作業が面倒なので、パスワード無しのPDFファイルにしちゃおうということです。

プログラムの内容

フォルダに複数のパスワード付きのPDFファイルが保存されています。そのフォルダ内のファイルをすべてパスワード無しのPDFとして保存します。

下記の制限でプログラムを作っていこうと思います。

  • パスワードはすべて同じ
  • パスワード無しのPDFファイルは別フォルダに保存する
  • フォルダ内にPDFファイル以外のものがある

必要なライブラリ

今回は『pikepdf』と『os』を使います。

  • pikepdfPDFのファイル操作用に使用します。
  • 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ボタンで記事のシェアをしていただけると嬉しいです!

PYTHON
スポンサーリンク
シェアする
フォローする

コメント

タイトルとURLをコピーしました