Power Automate の Muhimbi PDF コネクタでセキュリティ設定付きPDFファイルを作る

表題の通り、Muhimbi PDF コネクタでセキュリティ設定付きPDFファイルを作ってみました。(ムヒンビかな？コネクタの読み方がわかりません。。。)

> Muhimbi PDF
> https://docs.microsoft.com/ja-jp/connectors/muhimbi/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/c7267747-523e-5692-49e4-fa8fd71b4dd2.png)


# 手順

1. アカウントの登録
2. PDFを作成する Power Automate の作成
3. PDFにセキュリティ設定を付与する アクションの追加

## 1. アカウントの登録

コネクタを利用するためには、以下サイトにアクセスし、アカウントの登録をします。

> Muhimbi アカウント登録
> https://api.muhimbi.com/Auth/Pages/Register.aspx

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/3b4fbae7-c363-da58-7cee-09ed5cb329f0.png)

Email/Password は後に PowerAutomate で接続を作る際に必要になります。
Optionally... は空白で構いません。
Choose your subscription... は無料か試用版が選べます。今回は試用版にしました。

> subscription の違いについて
> https://support.muhimbi.com/hc/en-us/articles/115015480568-What-is-the-difference-between-the-Trial-and-Free-Subscription

他にも Pro/Enterprise などのプランがありますので、運用時はこのあたりの選択と費用が必要になります。

登録ボタンをクリックすると、メールアドレスの確認のためのメールを受信します。
リンクをクリックすると、アカウント作成完了です。
今回は使用しませんが、プログラムで接続するための以下の情報が送られてきます。
 - API Key
 - Access Token
 - Subscription ID

## 2. PDFを作成する Power Automate の作成

コネクタの使用準備が整ったので、Power Automate の設定をしていきます。
今回は、SharePoint Online の ドキュメントライブラリ(変換前のファイル)に　Power Point のファイルを保存したら、ドキュメントライブラリB(変換後のファイル)にPDFに変換したものを出力してくれる処理を作成したいと思います。

まず、Power Automate のメニューから"+作成"をクリックし、以下の画面を表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/6782bb7a-604b-de0f-9cc7-ebe099d483ce.png)

次に自動化したクラウドフローをクリックし、表示されただダイアログ内で"フォルダ内にファイルが作成されたとき"を選択したあと、作成ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/4bb59932-a1d0-d270-9502-efc1626095cb.png)

すると以下のような画面が表示されるので、変換前のファイルを配置するドキュメントライブラリを選択し、"+新しいステップ"をクリックします。
(フォルダーIDはライブラリの物理名になっているので注意してください。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/f18a3747-2df5-94e5-f2d4-adf1102639dc.png)

次のアクションの選択を求められるので、 Muhimbi PDF コネクタを探してクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/4981ac89-c956-1ec0-1e61-aa7c9bf4df8c.png)

以下のように複数のアクションが表示されるので、"ドキュメントの変換"をクリックします。
(セキュリティ設定をするアクションはPDFファイルを入力としますので、いったんPDFファイルを作成します。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/f77c430f-4059-6f4c-defe-1ca88f8103b8.png)

初めて利用する場合、このタイミングで接続を要求されます。
接続ボタンをクリックすると、ダイアログにて先ほど作成したアカウントでログインを求められますので、ログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/271b7c2b-2d7a-b274-24db-a4cfae65017d.png)

無事ログインできて、アクションが使えるようになったら、以下の画面のように入力します。
- ソースファイル名 : 1つ上のアクションで取得できるファイル名
- ソースファイルのコンテンツ   : 1つ上のアクションで取得できるファイルコンテンツ
- 出力形式 : PDF
入力出来たら、"+新しいステップ"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/bc08b370-5b35-0612-09c1-4dd94edff5ef.png)

最後のアクションとして、 SharePoint から"ファイルの作成"アクションをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/f67ab5a9-3a1f-5e5e-b9e1-7fd65bf87f6b.png)

表示された画面に、出力したいライブラリを設定します。
また、ファイルについては以下のように入力します。
- ファイル名 : `concat(formatDateTime(utcNow(), 'yyyyMMddHHmmss'),'_',outputs('ドキュメントを変換')?['body/base_file_name'],'.pdf')`
- ファイルのコンテンツ   : 1つ上のアクションで取得できる処理されたファイルコンテンツ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/0b463cac-7f8a-a3ce-9f94-e6fd6bfc4642.png)

これで PDF が作成できるはずです。テストで試してみます。
まず手動を選択してテストボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/27492d9b-141f-4321-adec-fceb3e0cc65b.png)

ファイルをアップロード。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/d3e5d318-25b9-580e-1dc9-189c6402448c.png)

待ちます。今回2Mくらいのファイルなので割りと待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/5e6a9258-3372-1883-9646-ebdf2af0d786.png)

できました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/e8a7f362-a4a3-4136-d4f5-87a24b4a29d2.png)

中身もちゃんとできてます。
が、試用版のライセンスなので、出来上がったPDFには以下のような文字が挿入されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/d742f413-7939-72de-decc-e52a4b57e2be.png)

## 3. PDFにセキュリティ設定を付与する アクションの追加

簡単な動作確認ができたので、次はセキュリティ設定の付与を追加します。
"ドキュメントを変換"アクションの下に、"セキュリティで保護されたドキュメント"追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/19b0cce1-ff57-5db5-37d8-f609f910baf4.png)

追加できたら、以下のように入力します。
- ソースファイルのコンテンツ   : 1つ上のアクションで取得できる処理されたファイルコンテンツ
- 所有者のパスワード : 任意のパスワード
- PDF制限 : Print(左記は例。プレースホルダーに表示されている文字を入力すると指定の制限をかけられる) 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/d6551337-c587-8303-6c1e-b6a0e10617ec.png)

最後に、最後のアクションの以下の部分を修正します。
見た目上わかりにくいので注意してください。
- ファイルのコンテンツ   : 一度削除して1つ上のアクション(セキュリティで保護されたドキュメント)で取得できる処理されたファイルコンテンツ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/859f65bb-acd7-0bbc-fbbc-d12664e336e3.png)

これで準備が整いました。再度テストを実行してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/87f3e7ac-1758-9de9-75ba-c131460694f3.png)

ファイルができて
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/9e5a81c7-95b9-c432-c92e-bda6dff13e49.png)

セキュリティ設定がかかった状態で印刷不可になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/54ab736c-a8d1-c5e3-5571-f7d261090ce9.png)

これで完了です。

# まとめ
たまに PDF ファイルのセキュリティの設定の要望を受けることがありますが、上記であれば割と簡単に実現できます。

セキュリティ設定したいようなファイルを、外部に送信することをよく思わない会社もあると思いますので、状況に応じて使うものかと思います。
ちなみに Cloudmersive PDF (Preview) のコネクタでも同様なフローが組めると思いますが、こちらはプレミアムだったりもするので、ご注意ください。