本記事では、「PDF変換用」フォルダにファイルをアップロードすると、PDFに自動変換するフローを紹介します。
作成するフローの内容
本記事では、下記のフローを作成します。
フロー全体のショット
今回作成するフローはこのような形です。
事前準備
下記フォルダの準備が必要です。
- PDF変換用フォルダ
- PDF変換済フォルダ
PDF変換用フォルダと変換済フォルダを別途用意するのは、「ファイルが作成されたとき」のトリガーによる無限ループを避けるための簡単な対策となるからです。
自動化したクラウドフローの作成
フローの作成に入ります。
作成画面で「自動化したクラウドフロー」を選択します。
下記画面でフロー名とトリガーを設定します。
トリガーは「ファイルが作成されたとき(プロパティのみ)」です。
「OneDrive」と「OneDrive for Business」があるので、適切な方を選んでください。
本記事では、「OneDrive for Business」を選択します。
「ファイルが作成されたとき(プロパティのみ)」の設定
対象のフォルダーを選択します。
アップロードされたファイルを1つずつ処理するために、「設定」より「分割」がONになっていることを確認ください。
「ファイルの変換」アクション追加
PDF変換するためのアクション、「ファイルの変換」アクションを追加します。
「OneDrive for Business」の「ファイルの変換」アクションを選択します。
パラメータを設定します。
ファイル | 動的なコンテンツより「ID」を選択してください。 |
ターゲットの種類 |
「ファイルの作成」アクションの追加
「ファイルの変換」後、必ず「ファイルの作成」アクションを追加し、実際に変換後のファイルを作成する必要があります。
「OneDrive for Business」より「ファイルの作成」アクションを追加します。
パラメータを設定します。
フォルダーのパス | フォルダアイコンよりPDFファイルを格納するフォルダを選択します。 |
ファイル名 | 動的なコンテンツより、「ファイルの変換」項目下の「ファイル名」を選択します。 |
ファイルコンテンツ | 動的なコンテンツより、「ファイルの変換」項目下の「ファイルコンテンツ」を選択します。 |
「ファイルの削除」アクションの追加(任意)
本フローでは、PDF変換前のファイルを削除します。
「OneDrive for Business」の「ファイルの削除」アクションを追加します。
パラメータを設定します。
ファイル | 「ファイルが作成されたとき(プロパティのみ)」の直下にある「ID」を選択してください。 ※「ファイルの作成」直下の「ID」を選択すると、PDF変換後のファイルが削除されてしまいます。 |
フローの保存とテスト
保存をし、テストを実行してみてください。
「PDF変換済」フォルダにPDFが格納されたら成功です。
特定の拡張子のみPDF変換したい場合
WordやExcel等の特定ファイルのみでPDF変換したい場合、「条件」アクションを追加し、下記3アクションを条件内に移動します。
例えば、ExcelファイルのみをPDF変換したい場合の「条件」アクションのパラメータは下記の通りです。
ファイル名に対象の拡張子が含まれているか、で条件判定します。
左辺 | 動的なコンテンツより、「ファイルが作成されたとき(プロパティのみ)」直下の「名前」を選択します。 |
演算子 | contains |
右辺 | Excelファイルの拡張子の「xlsx」を入力します。 ・Wordの場合は「docx」 ・Power Pointの場合は「pptx」 |
Excelの特定のシートのみPDF変換したい場合
「複数あるシートの内、1シートだけをPDF変換したい」という場合は、フロー内で「Office Script」を実行します。
Office ScriptによりExcelのPDF変換対象外のシートを全て削除してから、PDF変換を行うという流れです。
Office ScriptでExcelファイルを作業すると、ファイルに6分間のロックがかかるため、最後の「ファイルの削除」ステップでエラーになってしまいます。
そのため、「遅延」アクションで7分待ってから、ファイルの削除を行うようにします。
Office Scriptの用意
PDFに変換したいExcelを開き、変換対象外のシートを全て削除するスクリプトを作成しましょう。
「自動化」タブより「新しいスクリプト」をクリックします。
スクリプトを入力します。
1 | わかりやすいスクリプト名をつけます。 |
2 | 対象のシート以外は全て削除するスクリプトを入力します。 ※”Sheet1″の箇所は、PDF変換する(削除しない)シート名に置き換えてください。 function main(workbook: ExcelScript.Workbook) { |
保存をすると、既定ではOneDrive>ドキュメント>Office Scriptsの中にスクリプトが格納されます。
「スクリプトの実行」アクションの追加
スクリプトを作成後、Power Automateのフロー編集画面に戻り、「スクリプトの実行」アクションを追加します。
※「ファイルの変換」アクション前に追加します。
場所 | OneDrive for Business |
ドキュメントライブラリ | OneDrive |
ファイル | 動的なコンテンツより「ID」を選択します。 |
スクリプト | 作成したスクリプトを選択します。 |
「遅延」アクションの追加
最後の「ファイル削除」アクションでのファイルロックエラーになることを防ぐため、「遅延」アクションを追加します。
Count | 7 ファイルロック期間は6分間のため、7分で設定します。 |
Unit | Minute |
コメント
HTMLをPDFに変換する方法はありますか?
日本語ありでお願いします。
イチリ様
コメントありがとうございます。
返信が遅くなり申し訳ありません。
日本語を含むダブルバイトの文字の場合は、「言語がサポートされていない」という理由でPDF変換ができないようになっております。
よろしければ、こちらが参照リンクです。
Power Automateの無料機能では厳しいため、プレミアムコネクタの「Adobe」等のサービスを利用していただく必要があります。
詳細はQiitaでrsuzuki様が解説しておられるので、よろしければこちらをご参照ください。