OCRでテキストを抽出するフローの作成
まず、実行すると対応するテキストファイルが入ったフォルダーがTextフォルダー上に作成されるサンプルフローを作成します。
[1]新しいフローを作成する
Power Automate for Desktopを開きます。トップ画面から[+新しいフロー]をクリックして、適当な名前(ここでは「OCRFlow」)で新規のフローを作成します。
[2]ドキュメントフォルダのパスを取得する
[フォルダー]アクショングループから[特別なフォルダーを取得]アクションを配置します。
以下の選択をして保存します。
- 特別なフォルダーの名前:ドキュメント
- 生成された変数:%Documents%
[3]ベースになるフォルダパスを変数に設定する
[変数]アクショングループから[変数の設定]アクションを配置します。
以下の入力をして保存します。
- 変数:%BaseFolder%
- 値:%Documents%\OCR
[4]画像フォルダーのリストを取得する
[フォルダー]アクショングループから[フォルダー内のサブフォルダーを取得]アクションを配置します。
以下の入力をして保存します。
- フォルダー:%BaseFolder%/Image
[5]結果フォルダに実行時刻を入れるために現在時刻を取得する
[日時]アクショングループから[現在の日時を取得]アクションを配置します。
そのまま保存します。
[6]日時をフォルダ名で使用する形式にする
[テキスト]アクショングループから[datetimeをテキストに変換]アクションを配置します。
以下の入力/選択をして保存します。
- 変換するdatetime:%CurrentDateTime%
- 使用する形式:カスタム
- カスタム形式:yyyyMMdd_HHmmss
[7]画像フォルダーでループする
[ループ]アクショングループから[For each]アクションを配置します。
以下の入力をして保存します。
- 反復処理を行う値:%Folders%
- 保存先:%CurrentFolder%
[8]結果ファイル格納フォルダーを作成する
[フォルダー]アクショングループから[フォルダーの作成]アクションをループの中に配置します。
以下の入力をして保存します。
- 新しいフォルダーを次の場所に作成:%BaseFolder%\Text
- 新しいフォルダー名:%CurrentFolder.Name%_%FormattedDateTime%
- 生成された変数:%OutputFolder%
これで、Textフォルダーに「(画像フォルダー名)_20230822_070000」のような形式のフォルダーが作成されます。このフォルダーに抽出テキストのファイルが格納されます。
[9]画像フォルダーの画像のリストを取得する
[フォルダー]アクショングループから[フォルダー内のファイルを取得]アクションを配置します。
以下の入力をして保存します。
実行時には、一つの画像フォルダーの中にあるファイルのリストを取得します。
- フォルダー:%BaseFolder%\Image\%CurrentFolder.Name%
[10]画像リストでループする
[ループ]アクショングループから[For each]アクションを配置します。一つの画像フォルダーにある画像ファイルのすべてを一つずつ処理対象にします。
以下の入力をして保存します。
- 反復処理を行う値:%Files%
- 保存先:%CurrentFile%
[11]OCRで画像からテキストを抽出する
[OCR]アクショングループから[OCRを使ってテキストを抽出]アクションを内側のループの中に配置します。
以下の入力/選択をして保存します。
- OCRソース:ディスク上の画像
- 画像ファイルのパス:%CurrentFile%
-
OCRエンジンの設定
- Windows OCRの言語:日本語
[12]抽出したテキストをファイルに書き込む
[ファイル]アクショングループから[テキストをファイルに書き込む]アクションを配置します。
以下の入力/選択をして保存します。
- ファイルパス:%OutputFolder%\%CurrentFile.NameWithoutExtension%.txt
- 書き込むテキスト:%OcrText%
- エンコード:UTF-8
画像ファイルから抽出したテキストデータをテキストファイルとして、画像ファイルの名前の拡張子部分を.txtにした名前で対応するフォルダに出力します。
NameWithoutExtensionプロパティは、ファイル名の拡張子を取り除いた部分を取得します。以上の設定で元画像が「AAAA.jpg」なら、「AAAA.txt」のようになります。
[13]実行する
フローを保存して、Imageフォルダに画像フォルダーがあることを確認して、実行します。画像ファイルごとに、抽出テキストファイルができます。
まとめ
Power Automate for Desktopで、画像ファイル中の文字列を抽出するサンプルを紹介しました。次回も引き続きこのフローをベースに、出力を個別テキストではなく元画像と合わせて1つのExcelブックに出力するサンプルを作成します。
