Q&A

回答の並べ替え:
投稿新規に質問を投稿する

文字を読み取るアクションセットで、画像を起点に読み取る方法

rider rider

2023-03-03 21:29

お世話になります。

見積書等のPDFの文書をブラウザで表示し、表示された文字をテキストとして
CELFに取り込みたいのですが方法がよくわからず困っています。

1枚目の画像のように
   見積日付    2022年1月5日
と表示されている場合、見積日付の右側にある文字(この場合は2022年1月5日)をとりこみたいのです。

文字を読み取るアクションセットで画像を「見積日付」で指定し、操作する位置を右側にずらせばできるのかなと思ったのですが、操作する位置が指定できませんでした。(クリックしても反応しない)

どのようにすれば画像を起点とした文字を読み取ることができますでしょうか。

最終的には、PDFに格納された文字をテキスト化できればよいのですが、文字を読み取るアクションを使う以外の方法があれば教えていただけますと幸いです。

よろしくお願いいたします。

rider rider
日本コンピュータシステム様

お世話になっております。

ご教示いただいた手順でためしてみたところ、所望の動作になりました。ありがとうございました!

一旦、画像検索の結果を保存しておき、その情報を基に文字を読み取るのは目からうろこでした。

おかげさまでこれで何とかなりそうです。

どうもありがとうございました!
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
メダルベストアンサー
こんにちは。

シート画像の文字が小さくなってしまいましたが、画像のように作りこめば見積日付の右側に配置されている日付を読み込むことが出来ます。

①先ずは、アクション画像の上のアクション「指定された画面上の領域から文字列を読み取り~にセットする」を利用し見積日付_値の位置と文字の横幅、縦幅を取得しておきます。
「文字列が読み取られた位置を次のセルにセットする」にチェックすれば位置情報をセルに出力されます。(画像ではB9に出力)
位置情報は「(268,524,101,30,318,539)」の様な形式で内容は以下をご参考下さい。

https://cloud.celf.jp/celf-rpa-help/ja/texts/faq/technical/rpa_faq000025.html

この時に値も取得し日付が正常に取得できるかご確認下さい。私の環境ではEdgeに表示したPDF日付を取得することか出来ました。

上のアクションは値が正常に取得できることと、見積日付_値の位置と文字の横幅、縦幅を取得することが目的ですので、後は不要になります。

②次に下のアクションでアクション「画像が現れるまで待機する」を利用しPDFに見積日付_項目が存在するかチェックします。
こちらも「文字列が読み取られた位置を次のセルにセットする」にチェックを行って下さい。
成功すればB1にtrueが出力され、B2に見積日付_項目の位置情報が出力されます。

③次に「②」で取得した見積日付_項目の位置から見積日付_値を取得する位置情報を計算しB3にセットします。
位置情報は「(268,524,101,30,318,539)」の様な形式なので、以下の方法で見積日付_項目の横と縦の座標を抜き出します。

■D2にセット
 見積日付_項目⇒左上のX軸(横方向)座標
=mid(B2,2,FIND(",",B2,2)-2)

■E2セット
 見積日付_項目⇒左上のY軸(縦方向)座標
=mid(B2,FIND(",",B2,2)+1,FIND(",",B2,FIND(",",B2)+1)-(FIND(",",B2,2)+1)))

上記の値から見積日付_値の横と縦の座標を計算します。今回は項目と値を比較したときに縦は同じ高さなので、E2をそのままセットし、横は項目からだいたい右側に182の所になるので、以下の通り加算した値をセットします。

■D3にセット
 見積日付_値⇒左上のX軸(横方向)座標
=D2+182

■E3にセット
 見積日付_値⇒左上のY軸(縦方向)座標
=E2

■F3にセット
「①」で取得した見積日付_値の幅
160

■G3にセット
「①」で取得した見積日付_値の高さ
26

上記の値から以下の通り見積日付_値の位置情報を作成します。

■B3にセット
=CONCATENATE("(",D3,",",E3,",",F3,",",G3,",0,0)")


④最後にアクション「指定された画面上の領域から文字列を読み取り~にセットする」を利用しB4に見積日付の値を取得します。
アクションの操作対象を押下すると操作対象指定画面が表示されますので、領域タブを選択してください。
セルの指定がありますのでB3をセットします。


今回は見積日付_項目が起点とのことですので、この様なやり方になりますが、場所が固定なのであれば「①」の見積日付_値を直接取得するでも良いかもしれません。
他にも方法はあるかもしれませんが、宜しければご参考下さい。
メールコンタクトをとる
新日本コンピュータマネジメント株式会社 新日本コンピュータマネジメント株式会社 パートナー
こんばんは。

「指定された画面上の領域から文字を読取セル□にセットする」のアクションですが、
私も活用した事がなかったのですが、確認した点、気付いた点を共有します。

画像認識+操作する位置で試してみましたが、操作する位置が選択できなかったのは同じ事象でした。
※操作する位置がバグっているのかと思い、クリックするアクションを設定してみましたが、操作する位置の変更は設定できましたので、「指定された画面上の領域から文字を読取セル□にセットする」では使えない様です。

https://cloud.celf.jp/celf-rpa-help/ja/texts/actions/strings.html
ヘルプは上記のページの通り、領域からの設定しか記載がされていない。

画像認識+操作する位置を指定しても、ピンポイントの座標で範囲を指定できない為、
使えない様になっている様に思えました。

画像認識で座標をセルに返却し、座標のアドレスを元に、領域の情報に加工した結果を、領域のセル指定で使う事でできると思います。

よろしくお願いいたします。
メールコンタクトをとる