エンジニアとしての市場価値を測りませんか?PR

企業からあなたに合ったオリジナルのスカウトを受け取って、市場価値を測りましょう

1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Blue Prism】PDFファイルを開いてテキストを読み取る

Last updated at Posted at 2022-10-14

はじめに

仕事をする上でPDFファイルを使う機会は多いのではないでしょうか。
本記事では、PDFファイルを開き、本文をコピーし、データアイテムに出力するまでの流れを
自動化してみたいと思います。

前提条件

  • Blue Prism ver6.8
  • Adobe Acrobat Reader DC ver2022.002.20212 (64bit)

PDFファイルを開く

PDFファイルを開く方法はいくつかありますが、
ここでは一番簡単な「Start Process」アクションを使った方法をご紹介します。

Start Process

プロセスを新規作成し、以下のようなページを作成します。
image.png

データアイテム「PDFファイルパス」

データ型 初期値
テキスト (開きたいPDFファイルの完全パス)

アクションステージ「PDFファイルを開く」
 ビジネスオブジェクト:Utility-Environment
 アクション:Start Process

入力
Application データアイテム「PDFファイルパス」

※Argumentsは空でOK

PDFファイルの操作

オブジェクトを新規作成します。
開いたPDFファイルにアタッチをしないとテキストを読みとることが出来ないためです。
ここでは「アタッチ」と「テキストを読み取る」アクションを作っていきます。

アプリケーションモデラー

アプリケーションモデラーを設定します。
下に載っていない項目は、デフォルトのまま「次へ」で進めてください。
image.png
*補足1
ウィンドウタイトルが指しているのは、以下画像の箇所です。
image.png
対象アプリケーションを起動している時、どの画面でも必ず表示されている文字を見つけて、
その文字の前後にワイルドカード(*)を置いて、これをウィンドウタイトルとします。
*Adobe*

*補足2
Windwosプロセス名は、タスクマネージャーの詳細タブから確認出来ます。
プロセス名は画像赤枠で囲った部分です。拡張子は含めないでください!
タスクマネージャー詳細.png
※PDFファイルは1つしか開いていないのですが、上記画像見ますと、タスクが2つ実行されています。
 これはAdobeの仕様で、ファイルを開くと、デフォルトで「保護モード」がオンになります。
 
簡単にまとめますと、
 1.保護モードがオンだと、Adobeのタスクが自動で2つ生成される(設定でオフにはできる)
 2.人間にはAdobeが1つだけ起動しているように見えますが、Blue Prismは2つ起動していると認識するため、どちらでもいいので一方のタスク(プロセス)にアタッチ(紐づけ)する必要がある

ということです。

要素スパイ

アプリケーションモデラ―が設定出来たら、次は要素スパイです。

スパイモードはAA(Active Accessibility)モードを使います。
スパイする要素は1つのみで、以下画像の範囲(赤枠)をスパイします。
image.png
AAモードで要素をスパイした後、デフォルトで取得した属性一覧のうち、
次の条件に当てはまるものはチェックをオフにするのが推奨されています。

  • 値が空白
  • 親(Parent)属性のもの ※
  • 可視(Visible)
  • 有効(Enabled)
  • 要素カウント
  • URL

※親属性の中には要素一致に必要なものが含まれていることもあるので、1つずつハイライトしながらチェックしてください。

不要な属性のチェックを外すと以下のようになります(多少の差異はあるかもしれません)。
image.png

アクション

スパイが完了したら、次の2つのアクションページを作成します。

1.アタッチ
image.png

  • 読み取りステージ「アタッチ読み取り」のプロパティ
    image.png

  • 判断ステージ「アタッチ済み?」のプロパティ
    式フィールドに、データアイテム「アタッチ結果」を貼り付けるだけでOK

  • 操作ステージ「アタッチ」のプロパティ
    image.png

氏名 データ型
ウィンドウタイトル テキスト "*Adobe*"
プロセス名 テキスト "Acrobat"

 

2.テキスト読み取り
image.png

  • 操作ステージ「PDFの内容をクリップボードに取得」
    image.png
    ①,②にはそれぞれ以下の入力プロパティを設定
    image.png
氏名 データ型 値① 値②
テキスト テキスト "^a" "^c"

 

  • アクションステージ「クリップボードの値を取得」
    image.png

実行

今作ったオブジェクトを、冒頭で作成したプロセスから呼び出してみて、一連の流れを実行してみます。
冒頭作りかけのフロー図に、作ったオブジェクトのアクションをそれぞれ呼び出したものを配置しました。
image.png

↓アクション「テキスト読取」からの返り値をプロセスで受け取れるようにしています。
image.png

 
実行結果がこちら
image.png

PDF終了アクションを作り忘れたのでPDFが開きっぱなしになっていますが…
PDFの本文を全選択した名残(テキストに青色が被さっている)が残っていますね。
また、データアイテムを見ると、テキスト自体は読み取れていました。

終わりに

PDFファイルを読み取りたいときは、以下がポイントです。
・Start ProcessでPDFファイルを開く
・PDF操作オブジェクトを作成する

ご覧くださりありがとうございました。

参考記事

【RPA】Blue PrismでPDFからデータを読み取ってみよう
保護モード(Windows)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Comments

No comments

Let's comment your feelings that are more than good

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address