このPDFの文書や図表をテキストにしたい!一括で文字化にできればと、このような経験がありませんか。会議等で配布された資料の多くはPDFファイルになっています。これらの資料に基づいて、資料を作成しようとするとき、ますますその思いは強くなっています。
PDFをワードに変換するフリーソフトもありますが、精度や利便さの面でなかなかいいものが見つかりませんでした。最近、Power Automate Desktopの色々な便利な機能を知ったので、PDFからテキストを抽出・転記するフローを作ってました。
試作はこちらです。
動画修正しました。#protoout #powerautomate pic.twitter.com/IIkHUiTRHn
— トミー (@h21550) September 17, 2023
目次
使用したツール:
・Power Automate Desktop
Power Automate Desktopフロー
フロー作成方法:
①アクションの「PDF」グループより、「PDF からテキストを抽出」アクションを選択し、ドラッグアンドドロップ
PDF ファイル
テキストを取得したいPDFファイルのパスを設定します。
「ファイルの選択」から選択できます。
抽出するページ
テキストを取得する対象のページを設定します。
「すべて」にしました。
対象とするPDFファイルの全ページからテキストデータを抽出します。
②アクションの「ファイル」グループより、「テキストをファイルに書き込む」アクションを選択し、ドラッグアンドドロップ
ファイルパス
事前に抽出結果を転記するためにテキストファイルを作っておいて、それを選択します。
書き込むテキスト
「%ExtractedPDFText%」と入力します。
③フローを実行します。
④Power Automate Desktopのフローやアクションを共有します。
Power Automate Desktopのフロー編集画面で、共有したいフローの一部もしくはすべてを選択します。(ctrl + Aボタンで表示中のフローをすべて選択することが可能です。)
マウスを右クリックし、[コピー] をクリックします。
メモ帳を起動し、マウスを右クリックし [貼り付け] をクリックします。
Pdf.ExtractTextFromPDF.ExtractText PDFFile: $'''C:\\Users\\ユーザー名\\Desktop\\××××(ファイル名) .pdf''' DetectLayout: True ExtractedText=> ExtractedPDFText
File.WriteText File: $'''C:\\Users\\261150\\Desktop\\抽出結果.txt''' TextToWrite: ExtractedPDFText AppendNewLine: True IfFileExists: File.IfFileExists.Overwrite Encoding: File.FileEncoding.UTF8
Power Automate Desktopの新規フロー編集画面を開き、共有されたテキストから内容をコピーして、貼り付けます。
(テンプレートとして共有し、フローで別途パス等の設定を行う必要があります。)
使ってもらいました
同僚に使っていただき、コメントをいただくことにしました。
・作成狙いの説明:PDF化された契約書、決済書、資料の一部あるいは全文をテキストとして使用したい場合、このツールを使って抽出できる。
・使っていただく同僚:支払処理、PC管理、決済書、契約書等書類管理担当するアシスタン2名。
・使用することで利便性や作業効率について、どう感じたかをヒアリング
・感想:
①こんなことができるの?作ったの?すごい!
②どんなときに使えるの?なるほど
③少量のテキストであれば、そのままテキストをコピー貼り付けのほうが便利、複数ページの場合、これを使うとすごく効率がいい
④スキャンで作成されたPDFにも使えるとよい
⑤自分のPCにもPower Automate Desktopをダウンロードして使ってみたい
今後の展望
確かにPDFからテキストを抽出とのフローでは、ワードやPPTなどをPDF化したデータからテキスト抽出に便利ですが、スキャンデータで画像としてPDF化したデータには適用できないのが欠点です。むしろ画像からテキストを抽出するテクニックがハードルは高く、ニーズとしてあるといただいたコメントに気づかされました。
調べてみたら、OCRを使ってテキストを抽出とのアクションでフローを作れば、解決できることがわかりました。作成に着手していますが、まだ未完成です。完成したら、また同僚に使ってもらって、フィードバックをもらいたいと思います。
乞うご期待!