はじめに###
この記事は私自身の備忘録になっています。
2年ほどWinActorから離れており、現在Ver6.3.1でリハビリ中です。
私が以前、利用していた時(Ver5から6に変わった頃)に無かった
「WinActorEye」を触ってみたので簡単な設定方法です。
今回使用したWinActor###
・バージョン:6.3.1
処理概要###
・フォルダ内の保存されている複数のPDFから社員番号と氏名を抽出。
抽出した内容をExcelへ転記を行い、全て転記後にExcelを保存する。
PDFのフォーマットとExcelのフォーマットは下記の通りです。
なお、PDFに記載の氏名や訪問先は架空のものになっております。
WinActorEyeの設定###
・WinActorより「ツール>WinActorEye」をクリック。
・WinActorEyeが起動。
・初期化のために「設定>全リソースクリア」をクリック。
・PDFの読み取り設定準備のために「表示>WinActorEye マクロ編集」をクリック。
・WinActorEye マクロ編集が表示。
・WinActorEye マクロ編集に前回の情報が残っている場合「新規作成」をクリック。
・コマンド等に何も表示されていないことを確認し「記録」をチェック。
・WinActorEyeに戻り、読み取りたいPDFを開く。
その際、WinActorでPDFを開いても同じウィンドウ状態になるよう処理を行うこと。
例:「ウィンドウの最大化」や「ウィンドウ全体に表示」など
・読み取りたいPDFが開いている状態で
WinActorEyeの「入力>スナップショット」をクリック。
・スナップショットの画面が表示。
・WinActorEyeへの取り込み対象物を設定し「実行」をクリック。
設定方法はWinActorと同様ターゲットボタンから選択する方法と
ウィンドウタイトル名を指定する方法がある。
今回は複数のPDFを読み取りたいためウィンドウタイトル名で「を含む」を選択した。
・WinActorEyeにPDFが取り込まれたことを確認。
・読み取り対象を設定するために「画像加工>トリム」をクリック。
・トリムの画面が表示。
・WinActor Eyeの画面で読み取り箇所をドラッグ&ドロップすると赤線で範囲が選択される。
その際にトリムが消えた場合は、再度「画像加工>トリム」をクリック。
トリムに加工前の画像リソース
(先ほどスナップショットで設定したウィンドウタイトル名)、
加工後の画像リソース名を入力し「実行」をクリック。
・読み取り箇所が表示されたことを確認。
・OCRの設定のため「ツール>OCRツール」をクリック。
・OCRツールの画面が表示。
・入力の画像リソース(先ほどトリムで設定した画像リソース名)、
出力のリソース名を入力し「実行」をクリック。
・WinActorEyeで赤線で囲われ認識していることを確認。
・設定した内容を保存するため「表示>WinActorEye マクロ編集」をクリック。
・WinActorEyeの画面が開き「保存」をクリック。
・任意の場所に「.json」ファイルを保存。
同様に「氏名」を読み取る設定も行い、
作業終了後に開いているWinActorEye関連のウィンドウを閉じる。
WinActorのシナリオ###
・今回、作成したシナリオは下図の通り。
シナリオ全体の説明は割愛。気になった3か所(フロー内の赤枠)のみ記載。
1.WinActorEyeで読み取り設定した状態と同じようにするため
PDFのウィンドウを最大化とウィンドウ全体に
PDFを表示するようエミュレーションを設定。
2.「Eye:マクロ読込み実行」のノードで保存した読み取り設定を実行。
実行した結果はクリップボードに保存されるため、
「クリップボード」のノードを使用して変数へコピー。
WinActorEyeで読み取った内容は半角スペースが多く含まれているため
「文字列置換」のノードで半角スペースを削除と
念のため「トリム」のノードで文字列の前後に改行コード削除を設定。
3.Excelの転記へ転記するとPDFのウィンドウが後面に移るため
「ウィンドウの前面化」のノードを使用してPDFのウィンドウの前面化を設定。
ウィンドウが後面にあるとWinActorEyeで値を取得できなかった。
シナリオの実行結果###
3つのPDFで社員番号、氏名の2か所を読み取った結果を待機ボックスに表示。
(氏名の間の半角スペースは置換しているため待機ボックスには出力されない)
1つ目のPDF
2つ目のPDF
3つ目のPDF
今回用意したPDFの読み取りに成功。
WinActorEyeを触ってみての感想###
・認識率が高いように感じた。
・WinActorEyeの読み取りは座標で記憶なので
WinActorで読み取り対象物を開く際には
WinActorEyeで読み取り設定したサイズに開くことが必要。
⇒対策:ノード「ウィンドウの表示変更」や「エミュレーション」など
・WinActorEyeの読み取り対象物が前面化されていないと
正しく読み取れないため読み取り対象のウィンドウの前面化が必要。
⇒対策:ノード「ウィンドウの前面化」
長文になりましたが、以上です。