見出し画像

Power Automate for desktopでPDFファイルを複数ページずつ分割する方法

先日、600ページあるPDFファイルを2ページずつ分割したいという要望がありました。
1ページずつの分割であればできるフリーソフトは結構あるのですが、複数ページずつ分割できるフリーソフトってあんまりないんですよね。

いろいろ調べていたところ、Power Automate for desktopで分割する方法をMiyakeさんが記事にしていらっしゃいました。

という訳で、Miyakeさんの記事を元に自分でもフローを作ってみました。

イメージ

フロー

フロー全体

ポイント

①インプットボックス

インプットボックスを使って、元ファイルと分割ページ数をユーザーに入力させるようにしています。

ファイルを選択するアクション
分割ページ数を入力させるアクション、文字列で返ってきてしまうので数値に変換しています

ちなみに、ダイアログの「キャンセル」ボタンを押してもその後の処理は実行されてしまうため、[Switch]と[Case]を使って「OK」の時にだけ処理を実行させるようにしています。

②複数ページで分割させる方法

複数ページで分割させるためには、[新しいPDFファイルへのPDFファイルページの抽出]の[ページ選択]の部分に、[1-3]のように抽出するページを設定します。

%LoopIndex%を使って抽出するページを変化させていきたいので、[Loop]アクションの増分に分割したいページ数(アクション5でユーザーに入力させた数字)を設定し、[新しいPDFファイルへのPDFファイルページの抽出]の[ページ選択]を、[%LoopIndex%-%LoopIndex + PageSu - 1%]と設定しています。

アクション15:増分にアクション5で入力させた数値を設定
アクション16:[ページ選択]を例えば[1-3][4-6]になるように変数を組み合わせて設定

③分割したいページ数を1ページとそれ以外で条件分岐

上記設定にした場合、分割するページ数を1ページにするとエラーが出てしまったので、1ページとそれ以外で条件分岐しています。

分割するページ数が1ページの場合には、[ページ選択]は素直に[%LoopIndex%]で大丈夫です。

いけてないところ

この方法、[ページが範囲外です]のエラーを検知して、Loopから抜けています。
その為、総ページ数が分割ページ数で割り切れない場合、一番最後のファイルが出力されません。

実用の際にはご注意ください。

2023.5.2追記

100枚単位で処理すると途中でエラーが出てしまいました。
エラーが出る場合には、[新しいPDFファイルへのPDFファイルページの抽出]アクションの「エラー発生時」処理の[エラーが発生した場合にアクションを再試行する]をオンにしてください。

この記事が気に入ったらサポートをしてみませんか?