複数のPDFファイルの保護を一括で解除するツールを作成したので、ソース公開します。
(python初心者がとりあえず動くもの作っただけなので綺麗なソースではありませんが…)
1.ツール作成を思い立った背景
- 公式HPからダウンロードできる国家試験の過去問PDFは大抵の場合が保護付き。
- 学習過程でマーカーを付けたり、ファイル結合や編集を行いたい場面が多々あり、保護が邪魔
2.ツールの目的
- 開催回、科目、問題/解答毎に別ファイルになっているPDFの保護解除を一括で行う
- 1ファイルずつ手作業で保護解除はしたくない
3.ツールの仕様
- 実行ツールと同じディレクトリ内のPFDファイルを全て保護解除して保存する
- 動作環境はWindows10
- pythonで作成
3.1 ツール実行
3.2 ソース
bulkUnlockPDF.py
import os,sys,glob
from pikepdf import Pdf
#カレントディレクトリに出力用のディレクトリ作成(ない場合のみ)
dirNm = "/unlockPdf"
if not os.path.exists(os.getcwd() + dirNm):
os.makedirs(os.getcwd() + dirNm)
#カレントディレクトリ内のPDFファイルを取得してループ
files = glob.glob(os.getcwd() + "\*.pdf")
for file in files:
pdffile = Pdf.open(file,password="")
newPdf = Pdf.new()
newPdf.pages.extend(pdffile.pages)
saveFileNm = os.getcwd() + dirNm + "/" + os.path.basename(file)
#出力済みフォルダに同名ファイルがない場合、PDF保護解除ファイルを出力
if not os.path.exists(saveFileNm):
newPdf.save(saveFileNm)
print(saveFileNm + "を出力しました。")
else:
print(saveFileNm + "は既に存在します。")
#終了メッセージ出力
input("PDFの保護解除完了")
python実行環境をインストールしておらず、実行ツール(exe)だけ欲しい方はこちら
↓↓↓
bulkUnlockPDF.exe
↑↑↑
4.さいごに感想
- かねてから勉強したかったpythonを初めてinstallしてツール作成しました
- python最高~~ もっと勉強したくなった
- あ、、pythonの勉強は目的ではなくて、試験合格が目的でした...頑張ります…