今回は、Power Automateを使ってPDF結合をする方法を紹介します。
Power Automateとは、ノーコード(ローコード)で業務を自動化できるツールです。
Power AutomateはWindows10より標準で搭載されているので、どこかしらで見たことあるのではないでしょうか?
PDF結合はオンラインサービスでできますが、PDFをよく知らないサイトにアップロードするのを不安に思ったりすることにありませんか?
また、サイトによっては回数制限があったり、結合するのに時間がかかったりすることに不満はありませんか?
そういった不安や不満を解決できたらなと思います。
事前準備
今回、Power Automateを使いますので、Power Automateのアカウントを作成しておき、Power Automateを使えるようにしてください。
また、
①結合したいPDFを結合させるためのフォルダ(以下、「PDF結合」フォルダ)
②結合したPDFを置いておくフォルダ(以下、「PDF保存場所」フォルダ)
を作成してください。
そして、結合したいPDFを「PDF結合」フォルダにすべて入れ、
ファイルの名前を変更して、「(結合させたいファイル)01.pdf」「(結合させたいファイル)02.pdf」…
というように結合させたい順に半角で01,02,03…をファイルの名前の末尾に入力してください。
Power Automateのフロー図
PDF結合をするフロー図です↓
フローはこのMainに記載している7アクションのみで他にはありません。
フォルダー内のファイルを取得(1つ目)
最初の「フォルダー内のファイル取得」アクションは、左のアクション選択画面から、
「フォルダー」のカテゴリにあります。
このアクションの設定は以下の通りです。
フォルダーには、事前準備で作成した「PDF結合」フォルダを選択してください。
ファイルフィルターには、「*.pdf」を入力して、フォルダ内のすべてのPDFファイルを選択させます。
並べ替え基準は1つで、並べ替えの第2基準以降は未入力でOKです。
ここは初期値のまま使います。Filesになっている前提で以下進めていくので注意してください。
PDFファイルを結合
最初の「PDFファイルを統合」アクションは、左のアクション選択画面から、
「PDF」のカテゴリにあります。
このアクションの設定は以下の通りです。
PDFファイルには、1.で設定したFilesの変数を設定します。
統合されたPDFのパスには「PDF保存場所」フォルダ内に作成されるようにしておきます。
「C:\Users\OneDrive\デスクトップ\PDF保存場所\100.pdf」は、「PDF保存場所」フォルダに、「100.pdf」というフォルダを作成するということになります。
「100.pdf」という名前はすぐに変更するので、一時的につけておく名前になります。
詳細と生成された変数は未入力にしています。
これで、1.で選択したすべてのPDFファイルを結合していきます。
フォルダー内のファイルを取得(2つ目)
これも並べ替えの第2基準以降は未入力でOKです。
変数名を変更して、FileNameとしておきます。
この変数に、あとで「(結合したいファイル名)01.pdf」を入れていくことになります。
サブテキストの取得(結合するPDFのタイトルを変数に格納)
元のテキスト「%FileName[0]%」にすることで、3.で設定したファイル名の「~01.pdf」を取得します。あとで、ここで取得した名前を結合したPDFのファイル名にします。
「文字の位置」ですが、ここは数字を入力します。
「%FileName[0]%」はファイルパスが入っています。ファイルパスの先頭から数えて、最後の「\」までの文字数を入力してください。
例として、以下の「(結合させたいファイル)01.pdf」で考えると、
まず以下の図のように、ファイルをフォーカスしてから、画面右上の、「…」ボタンより、「パスのコピー」を選択してパスを取得します。
そして、それをメモ帳にコピー&ペースト。
次に「””」(ダブルクオーテーション)を削除します。
これを先頭から最後の「\」までの数字を数えると、31番目なので「文字の位置」には「31」を入力してください。
クリップボード テキストを設定(結合するPDF名をクリップボードに保存)
4.で宣言したSubTextをクリップボード テキストに設定します。
PowerShell スクリプトの実行
ここでは、PowerShellを使って、結合されたPDFのファイル名を「100.pdf」から、結合前のファイル名に直すということをしています。
PowerShellのコード↓
1 2 3 |
$title = Get-Clipboard $title = $title.replace('01.pdf','.pdf') Rename-Item -Path C:\Users\OneDrive\デスクトップ\PDF保存場所\100.pdf -NewName "$title" |
1行目。$titleに、5.でクリップボードに設定した値を格納します。
2行目。replace関数を使って、$titleの末尾の01を削除します。
3行目。「PDF保存場所」フォルダの100.pdfの名前を$titleに変更します。
ここまでで一通り完成ですが、「もう結合したPDFができたから、結合前のファイルはいらないよ!」という方は、次のアクションも追加してください。
ファイルの削除(必要な人のみ)
ここでは、「PDF結合」フォルダのパス(C:\Users\OneDrive\デスクトップ\PDF結合*)を入力することで、「~01.pdf」「~02.pdf」などのファイルを削除します。
※結合される前のファイルを削除したくない場合はこのアクションは追加しないでください。
最後に
今回はPDF結合から、ファイル名を変更するところまでPower Automateで自動化してみました。
PowerShellを併用すると、できることの幅が広がるので面白くなりますね。
Excelとの併用も面白そうなので、今度記事にしようと思いますー