PDFから外部ツールで文字列情報を取得し、WinActorノートへ貼り付けを実行するサンプルシナリオ
はじめに
PDFから外部ツールで文字列情報を取得し、WinActorノートへ貼り付けを実行するサンプルシナリオ (以降、本サンプルシナリオ) について説明します。
本サンプルシナリオの概要
本サンプルシナリオは、以下の処理を行います。
- コマンドプロンプトから外部ツールを実行します。
- 指定されたPDFから文字列情報を取得します。
- 取得した文字列情報を、指定されたテキストファイルに出力します。
※指定されたテキストファイルが存在しない場合は、新規作成します。
- 文字列情報を出力したテキストファイルを、WinActorノートに読み込ませます。
- テキストファイルの内容をWinActorノートに出力後、テキストファイルを削除します。
使用するWinActorモジュール
本サンプルシナリオでは、主に以下のWinActorモジュールを使用します。
- ノード/アクション/コマンド実行
- ノード/ユーザー/待機ボックス
- 01_WinActor制御/08_実行ログ/ログメッセージ出力.ums6
- 01_WinActor制御/02_シナリオ制御/シナリオ停止.ums6
- 07_文字列操作/03_連結/文字列の連結(3つ).ums6
- 13_ファイル関連/02_ファイル操作/ファイル削除.ums6
- 13_ファイル関連/02_ファイル操作/ファイル存在有無チェック.ums6
- 25_WinActorノート/テキストファイル読み込み.ums6
本サンプルシナリオの想定レベル
本サンプルシナリオのドキュメントは、以下の技術レベルのユーザを対象としています。
- Javaプログラムをコマンドラインで実行する方法を理解している。
動作確認環境
本サンプルシナリオは以下の環境で動作確認しています。
- Windows 10
- WinActor 6.2.0
- java 12 (PDFファイルを操作するプログラムを実行するために使用)
本サンプルシナリオの使い方
本サンプルシナリオの使い方は以下の通りです。
Step 1. 事前準備
本サンプルシナリオは、PDFファイルを操作するプログラムを使用しています。
対象のプログラムは、以下のリンク先からダウンロードすることが出来ます。
PDFBoxのプログラムダウンロページ
※「Command line tools」配下の「pdfbox-app-x.x.x.jar」
PDFファイルを操作するプログラムはJavaで動作するため、予めPCへJavaをインストールしてください。
Step 2. サンプルシナリオの読み込み
ダウンロードしたサンプルシナリオのZIPファイルを展開し、展開したフォルダに含まれている本サンプルシナリオをWinActorで読み込みます。
Step 3. 動作に必要な変数を設定
本サンプルシナリオを実行するために必要な値を、変数一覧で設定します。
事前に設定が必要な変数は下記の3つです。
- PDFファイルパス
- 文字列情報を抽出するPDFファイルを絶対パスで指定します。
例) C:\winactor\sample.pdf
- テキストファイルパス
- 抽出した文字列情報を出力するテキストファイルを絶対パスで指定します。
例) C:\winactor\outputSample.txt
- PDF操作プログラムパス
- PDF操作プログラムを絶対パスで指定します。
例) C:\winactor\pdfbox-app-2.0.18.jar
変数一覧画面
Step 4. サンプルシナリオの実行
WinActorで本サンプルシナリオを実行します。
ファイルの削除まで完了すると、本サンプルシナリオは終了します。
Step 5. サンプルシナリオの終了後の確認
PDFから取得した文字列情報が、WinActorノートに出力されていることを確認してください。
トラブルシューティング
本サンプルシナリオでは、誤ったファイルパスやファイル名/フォルダ名を指定した場合、エラーメッセージが出力されます。
詳細については、エラーメッセージ一覧を参照してください。
エラーメッセージが出力されていないが、想定の通り動作しない場合は以下をご確認ください。
エラーが発生していないが、WinActorノートにPDFの内容が貼り付けられない場合
コマンド実行ノードにて実行しているコマンドにおいてはエラーが発生している可能性があります。
その上で既存で存在するテキストファイルをテキストファイルパスに指定しているとシナリオとしてエラーが発生しない可能性があります。
コマンド実行時にエラーとなる要因としては、以下が考えられます。
- PDF操作プログラムパスの指定誤り
- PDF操作プログラムに指定のファイルが存在はしておりますが、事前準備にてダウンロードしたファイルと異なる場合はコマンド実行時にエラーが発生する可能性があります。
PDF操作プログラムが事前準備にてダウンロードしたファイルであることをご確認ください。
- PDFファイルパスにて読み込み不可能なファイル指定
- PDFファイルパスに指定のファイルがPDF操作プログラムにて操作可能なファイルでない場合(WordやExcelファイル等)はコマンド実行時にエラーが発生する可能性があります。
PDFファイルパスに読み込み可能なPDFが指定されていることをご確認ください。
- PDFファイルパスにてパスワードで保護されたPDFの指定
- PDFファイルパスに指定のファイルがパスワードにて保護されたファイルである場合はコマンド実行時にエラーが発生する可能性があります。
パスワードによる保護を解除した後、再度シナリオを実行することで正常に動作する可能性があります。
サンプルシナリオ解説
本サンプルシナリオで使用している実装テクニックについて解説します。
PDFファイルからの文字列情報の取得
本サンプルシナリオでは、変数一覧のPDFファイルパスに指定されたPDFファイルから、PDFファイルを操作する外部ツールを用いて文字列情報を取得し、テキストファイルに出力しています。
PDFからの文字列取得は従来のWinActorでは不可能でしたが、外部ツールを利用することでPDFからの文字列取得を可能としています。
外部ツールの利用に関しては、コマンド実行ノードを利用して実現しています。
コマンド実行ノードの設定
PDFファイルからの文字列情報の取得以外にもコマンドにて実現可能な外部ツールであれば同様に利用可能です。
文字列情報のWinActorノートへの連携
本サンプルシナリオではPDFより取得した文字列情報をテキストファイルを経由し、WinActorノートへ連携を行っています。
テキストファイルからWinActorノートへの連携に関しては、「25_WinActorノート/テキストファイル読み込み.ums6」で行うことができます。
外部ツール連携とWinActorノート連携
外部ツールを利用することで、PDFの文字列情報をテキストファイルとして出力することが可能であるため、外部ツールを利用してテキストファイルの出力、出力したテキストファイルを「25_WinActorノート/テキストファイル読み込み.ums6」を利用してWinActorノートへ連携を行っています。
WinActorノート以外への連携
- テキストファイルへの連携
- 使用している外部ツールにてPDFより取得した文字列情報はテキストファイルへ出力されます。
本サンプルシナリオではシナリオの最後に「ファイル削除.ums6」を利用して、出力されたテキストファイルの削除を行っております。 PDFより取得した文字列情報をテキストファイルとして保持したい場合は、「13_ファイル関連/02_ファイル操作/ファイル削除.ums6」を除外することでテキストファイルが存在したままとなります。
- 変数への連携
- 本サンプルシナリオでは出力されたテキストファイルより「25_WinActorノート/テキストファイル読み込み.ums6」を使用してWinActorノートへの読み込みを実現しております。 読み込みのノードを「13_ファイル関連/01_テキストファイル操作/テキストファイル読込.ums6」へ変更することで、PDFより取得した文字列情報をWinActorの変数へ連携することができます。
変更履歴
1.0版 |
2020/02/28 |
初版 |
1.1版 |
2020/11/09 |
事前準備で使用しているプログラムのリンク先を明記 |
1.2版 |
2023/06/12 |
・注意事項を削除 ・ファイル名を「SS2002_9419_GetStringFromPDF_1.0.1.zip」に変更 |