RPAエキスパートの笹谷です
今回はWinActorの技術系の記事となります。
WinActorを使ってPDFを操作する方法は様々ありますが、今回はその中でもPDFを分割する方法について紹介します。
Adobe Acrobat Readerを画面上で操作したり、オンライン上のPDFサービスを利用するのがひとまず浮かぶ方法ですが、画像マッチングを使用せず安定的に動かしたいのと、セキュリティの観点からファイルをアップロードするのを避けるために、今回は別の方法を選択することにしました。
有料版のAdobeのアカウントがある場合とない場合でそれぞれの方法を紹介します。
1.Excelマクロを経由してAcrobat Readerを利用する
有料版のAdobeアカウントがある場合は、ExcelマクロとAdobe Acrobat Readerを組み合わせる方法は比較的メジャーなやり方ですので、マクロを組んだ後にWinActorを経由してマクロを起動するシナリオがまず考えられます。
マクロの設定は以下の記事を参照に作成することができます。
記事のマクロを組み合わせることで、Excel上に書かれているファイルパスのPDFを順番に分割するシナリオを作成することができます。
マクロを設定した後、ライブラリの「Excel操作(マクロ実行)」を使用します。
2. Popperとコマンド実行を組み合わせる
今回の記事の本題はこちらとなります。有料版のAdobeアカウントを持っておらず、かつPC上にソフトウェアをインストールすることが難しい場合はこちらの方法を使用します。
Popperはコマンドライン上でPDFを操作できるソフトウェアであり、PDF分割以外にも様々な用途で使用できます。
Popperの準備
1.こちらのサイトからPopperをダウンロードする(2021年9月30日現在、poppler-0.68.0_x86が最新版です)
2.こちらのサイトからPopperのエンコーディング用のファイルをダウンロードする
3.2つのファイルを解凍後、エンコーディング用ファイルの中にある「poppler-data-0.4.11」を「popper」に名前を変更し、poppler-0.68.0_x86 > poppler-0.68.0 > share フォルダ内にコピーします。
tar.gz ファイルの解凍は7-zipという解凍ソフトでの解凍がおすすめです。
4.コマンドラインでpdfinfo.exeを実行する。
- コマンドプロンプトを起動
- cd C:\Users\sasat\Documents\poppler-0.68.0_x86\poppler-0.68.0\bin (popperのbinフォルダに移動します。ファイルパスは「bin」フォルダをShift+右クリック→「パスのコピー」で確認してください)
- pdfinfo.exe -listenc
上記のリストが表示されたら準備完了です。
WinActorでPopperを使用する
今回はPopperフォルダと同じフォルダにシナリオ、分割したいPDFがあり、同じフォルダで分割したファイルを出力したいと仮定して操作してみます。
コマンドの流れとしては以下の通りです。
- cd C:\Users\sasat\Documents\popperテスト\poppler-0.68.0_x86\poppler-0.68.0\bin
- pdfseparate C:\Users\sasat\Documents\popperテスト\テストPDF.pdf ../../../output-%d.pdf
pdfseparate [元ファイルのファイルパス] [分割後のファイルパス]
分割後のファイル名には必ず「%d」を含むようにしてください。
これをWinActor上で実行するには、ノードの「コマンド実行」を使用します。
変数「コマンド」の中身は「/c cd C:\Users\sasat\Documents\popperテスト\poppler-0.68.0_x86\poppler-0.68.0\bin&pdfseparate C:\Users\sasat\Documents\popperテスト\テストPDF.pdf ../../../output-%d.pdf」となります。
ポイントは通常のコマンドでの実行に加えて冒頭に「/c」を付けること、複数コマンドを実行する際は「&」でつなげることです。
シナリオを実行すると、PDFが分割されているのがわかります。
あとは、変数「コマンド」の中身をライブラリ「文字列連結」などを用いて、任意のファイルパスやファイル名に変更することで、福薄のPDFを分割したり、ファイル名に日付を使用したりすることができます。
Popperの実行で、ファイルパスにスペースが含まれているとうまく実行しない場合がありますので、その場合はWinActorでファイル名を変更するなどで対応してください。