Power Automate for desktop

Power Automate DesktopのPDFアクションがWebサービスを使っているのか調べてみました。

2021年8月現在、Power Automate Desktop(PAD)には下記のようなPDF関連の便利なアクションが用意されています。

  • PDF から画像を抽出します
  • PDF からテキストを抽出
  • 新しい PDF ファイルへの PDF ファイル ページの抽出
  • PDF ファイルを統合

検索エンジンで「PDF 結合 オンライン」といったキーワードで検索すればオンラインでPDF編集ができるサイトが多数ヒットしますが、PADの上記アクションは、このようなWebサービスを利用したものなのかどうかが気になったので調べてみました。

確認方法

確認方法はいたって単純で、PDFアクション実行時の挙動を「Fiddler Classic」を使ってキャプチャーするだけです。

テスト用フロー

使用したテスト用のフローは下記の通りです。
PDF関連のアクションを実行した後、ちゃんとキャプチャー出来ているかを確認するために「Web サービスを呼び出します」アクションを入れています。

Pdf.ExtractImages PDFFile: $'''C:\\Test\\PDF\\テストPDF1.pdf''' ImagesName: $'''img_''' ImagesFolder: $'''C:\\Test\\PDF\\img'''
Pdf.ExtractText PDFFile: $'''C:\\Test\\PDF\\テストPDF1.pdf''' ExtractedText=> ExtractedPDFText
Pdf.ExtractPages PDFFile: $'''C:\\Test\\PDF\\テストPDF2.pdf''' PageSelection: 1 ExtractedPDFPath: $'''C:\\Test\\PDF\\extracted.pdf''' IfFileExists: Pdf.IfFileExists.Overwrite ExtractedPDFFile=> ExtractedPDF
Pdf.MergeFiles PDFFiles: $'''\"C:\\Test\\PDF\\テストPDF1.pdf\", \"C:\\Test\\PDF\\テストPDF2.pdf\"''' MergedPDFPath: $'''C:\\Test\\PDF\\merged.pdf''' IfFileExists: Pdf.IfFileExists.Overwrite PasswordDelimiter: $''',''' MergedPDF=> MergedPDF
# キャプチャーできているかWebサービスを呼び出してテスト
Web.InvokeWebService Url: $'''https://jsonplaceholder.typicode.com/posts/1/comments''' Method: Web.Method.Get Accept: $'''application/json''' ContentType: $'''application/json; charset=UTF-8''' ConnectionTimeout: 30 FollowRedirection: True ClearCookies: False FailOnErrorStatus: False EncodeRequestBody: False UserAgent: $'''Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.21) Gecko/20100312 Firefox/3.6''' Encoding: Web.Encoding.AutoDetect AcceptUntrustedCertificates: False ResponseHeaders=> WebServiceResponseHeaders Response=> WebServiceResponse StatusCode=> StatusCode

実行結果

実行結果は下図の通りで、PDFアクション実行時には通信していないことが分かりました。
(「Web サービスを呼び出します」アクション実行時の動きはちゃんとキャプチャーできています。)

また、フロー実行時のファイルアクセスを「Process Monitor」で調べたところ、「PAD.Runtime.Robot.exe」が頻繁に「Robin.Modules.PDF.Actions.dll」ファイルにアクセスしていることが分かりました。

PADのアクションで出力したPDFを作成したアプリケーションが「PDFium」になっていたことから、恐らくこのDLL内でPDFiumを使用して変換等の処理を行っているのだと推測します。

Power Automate Communityの下記投稿に書かれたエラーメッセージからも、そのようなことが読み取れます。

at Robin.Modules.PDF.Actions.PDFium.PdfDocument.Save(String filePath)
at Robin.Modules.PDF.Actions.ExtractPagesToNewPDFAction.Execute(ActionContext context)
--- End of inner exception stack trace ---
at Robin.Modules.PDF.Actions.ExtractPagesToNewPDFAction.Execute(ActionContext context)
at Robin.Runtime.Engine.ActionRunner.RunAction(String action, Dictionary`2 inputArguments, Dictionary`2 outputArguments, IActionStatement statement)

https://powerusers.microsoft.com/t5/I-Found-A-Bug/Failed-to-extract-PDF-page-in-Power-Automate-Desktop-Ver-2-3/td-p/817922 より

実際のPADのソースコードを確認したわけではないので100パーセント確かではありませんが、フロー実行時の挙動をキャプチャーした限りでは、PADのPDFアクションはWebサービスを利用したものではないと言えるでしょう。

実は、このことは先日参加させていただいた「Power Automate Desktop初心者仲間づくり喫茶」でもチラッとお話ししたことなのですが、今回改めて記事としてまとめてみました。

Power Automate Desktopでストアアプリを実行する方法前のページ

[Power Automate]クラウドフローとデスクトップフローの連携方法次のページ

関連記事

  1. Power Automate for desktop

    [Power Automate for desktop]セレクターを変数化することでアプリのバージョ…

    OSやアプリのバージョンが変わるとウィンドウ構造の違いによって、同じア…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP