はじめに
紙の請求書やスクリーンショットの画像などから「文字」を自動で読み取りたいと思ったことはありませんか?
Power Automate Desktop(PAD)には、**OCR(Optical Character Recognition)**という機能があり、画像から文字を抽出できます。今回は、PADでOCRを使って文字を読み取る手順を、実際の操作画面付きで初心者でもわかるように解説していきます。
Power Automate DesktopでOCRを使う手順
1. OCRエンジンの初期化は不要になった
以前のバージョンでは「OCRエンジンの初期化」が必要でしたが、現在のPADではこの作業は不要です。
新しいバージョンでは、エンジンがあらかじめ組み込まれており、すぐにOCRアクションが使えるようになっています。
2. 「OCRでテキストを抽出」アクションを使う
使い方ステップ:
- Power Automate Desktopを起動
- 新しいフローを作成
- 「OCRでテキストを抽出」アクションを検索してドラッグ
設定項目:
- OCRエンジンの選択:
- Windows OCR(多言語対応)
- Tesseract OCR(軽量だが言語は限定)
Windows OCRエンジンを選ぶと、使用可能な言語が一覧から選択できます。
一方、Tesseractエンジンでは言語の選択肢が少なくなりますが、独自に言語データパスと言語コードを指定することで対応可能です。
3. 請求書画像から文字を読み取る
今回使用する画像:
invoice.png(PNG形式)invoice.jpg(JPG形式)
ステップ:
- 「OCRでテキストを抽出」のソースの種類を「画像ファイル」に変更
- 画像のファイルパスを指定(例:
C:\PA\invoices\invoice.png) - 「画像全体からテキストを抽出」にチェック
- 保存して実行
実行が成功すると、指定した画像から文字情報が取得され、OCRText変数に格納されます。
この変数には請求書の内容(宛先、品目、金額など)がすべてテキスト形式で保存されます。
4. JPG画像でも同様に使える
PNGだけでなく、JPG画像でも同じ手順で文字抽出が可能です。画像ファイルの拡張子を変えるだけでOKです。
例えば、invoice.jpgとするだけで、同じOCR処理が実行できます。
画面上に文字が現れるのを待機するOCRアクション
OCRは画像から文字を読み取るだけではありません。
「OCRによるテキストの待機」アクションを使えば、画面に特定の文字(例:「Ship To」など)が表示されるまで待機することもできます。
ステップ:
- 「OCRによるテキストの待機」アクションを追加
- 待機する文字列に「Ship To」などを入力
- 検索対象を「画面全体」に設定
- このアクションの前にブラウザを開くなどの処理を入れておく(例:Google Chromeを起動)
このようにすると、OCRが画面上に「Ship To」という文字が現れるのを監視し、文字が検出されたときに自動で次の処理へ進みます。
文字の座標(X, Y)も取得できる
文字が見つかった場所(座標)は X, Y 変数に格納されます。
- 例えば、「Ship To」が画面の中央に表示されていれば、X=286, Y=654 のような値が入ります。
- 画像を動かすと、当然座標も変わります。再度実行すれば、新しい位置に対応した座標が取得されます。
この機能は、画面上のどの位置に文字があるかを知りたいときに非常に便利です。
よくある質問(FAQ)
Q1. OCRエンジンはどちらを使えばいいの?
初心者の方は「Windows OCRエンジン」がおすすめです。設定が簡単で、複数の言語にも対応しています。Tesseractはより軽量ですが、言語データの設定が必要になります。
Q2. 手書き文字も読み取れますか?
精度は落ちますが、ある程度の手書き文字も読み取れます。ただし、フォントによって認識精度が大きく異なります。
Q3. PDFファイルもOCRで読み取れますか?
Power Automate Desktop単体ではPDF画像のOCRは直接できませんが、PDFを画像に変換すれば可能です。別ツールやスクリプトでPDFをPNG/JPGに変換してください。
Q4. 画像内の特定エリアだけOCRをかけたい場合は?
「OCRでテキストを抽出」アクションのエリア指定機能を使えば、指定した矩形領域の中だけから文字を抽出できます。
