つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

Ubuntu Linuxで大量のPDFのパスワード設定を自動化するシェルスクリプト


 機密情報が含まれるPDFファイルには、パスワードを設定しておくと安心です。
 PDFファイルにパスワードを設定するのに、
PDFtk』という無料のツール(フリーソフト)があります。


パスワード付きPDFについては、
 こちらの記事をご覧ください。

無料ツール「PDFtk」については、
 こちらの記事をご覧ください。


 
 この「PDFtk」でのパスワード設定は、PDFファイルの数が少なければ、手作業でもできます。
 けれども、数が多くなると、手作業では大変です。

 そこで、Ubuntu Linuxシェルスクリプトで、作業自動化を試みました。





 やりたいことは、
/home/goosyun/ドキュメント/
内に保存されているすべてのPDFファイルへのパスワード設定です。

 まず、事前準備として、
/home/goosyun/ドキュメント/
内に、PasswordPDFという名前のディレクトリ(フォルダ)を作成しておきます。
 これが、出力先となります。


 次に、テキストエディタを使って、シェルスクリプトを作成します。
 コードは、次のとおりです。

#!/bin/bash

# PDFファイルに設定するパスワード
 password="HOGEHOGE"

# ディレクトリ内のPDFファイルのリストを取得
 pdf_files=$(find /home/goosyun/ドキュメント -type f -name "*.pdf")

# ループを使用して各PDFファイルにパスワードを設定
 for file in $pdf_files; do

# ファイル名を取得
 filename=$(basename "$file")

# パスワード設定済みPDFファイルの出力先を指定
 output_file="/home/goosyun/ドキュメント/PasswordPDF/${filename%.pdf}_protected.pdf"

# PDFtkを使用してパスワードを設定
 pdftk "$file" output "$output_file" user_pw "$password"

# 作業完了のメッセージ表示
 echo "パスワードを設定しました: $output_file"

done


 当然ですが、上記コードは、私の環境におけるものです(特に、「goosyun」というのは、私のユーザー名です。)。ですから、PDFファイル保存ディレクトリ名や、出力先ディレクトリ名は、各自の環境にそって記述してください。
 こうしてでき上がったテキストファイルを、「AddPassword.sh」などの任意の名前で保存します。これが、シェルスクリプトです。

 このスクリプトを、「端末」アプリを起動して実行してみると、すんなりと完了しました。これで、すべてのPDFファイルにパスワードが設定されています。

 実行の方法はいくつかありますが、
  スクリプト保存先をカレントディレクトリにしておいて、
  $ bash AddPassword.sh
とするのが、簡単です。
  

 実行後に出力先ディレクトリを開いてみると、パスワード設定済みPDFが吐き出されています。
 ファイル名には、元のPDFファイル名の末尾に
  「_protected.pdf」の文字が追加されています。

  「あれまぁ、こりゃ便利!」
  「なぁんと、簡単!」
 最初はエラーが出るだろうと覚悟していたのですが、一発で実行できてしまい、自分でもびっくりです。

 私も徐々に、Linuxコマンドを使えるようになってきました。
 なお、上記コードは、初心者が手探りで作ったものです。お気づきの点があれば、コメントでやさしく教えていただけると幸いです。


実践Ubuntu


それでは、また次の記事で
goosyun