Power Apps PDF関数を使ってみた(実験機能)|複数ページPDFの作成と表示、ファイル保存からメール添付まで

スポンサーリンク

PDF関数

PDF関数は「実験的な機能」として公開された機能で、画面の要素からPDFのファイルコンテンツを作成することができる関数。

今まではPrint関数を使ってPDFWriter経由でPDF化することが多かったけど、PDF関数ではPDFコンテンツを直接作成するため、複数ページのPDF作成も可能

PDF関数で指定できる項目

PDF関数ではPDF作成時に以下を指定することができる。

  • Screen or control name(必須):印刷対象の画面またはコントロール
  • Size:PDFのサイズ(日本の既定はA4のよう)
  • DPI:PDFのDPI(既定は96)
  • Margin:PDFの外側のスペース(既定は0.5inch)
  • Orientation:縦向き(Portrait) or 横向き(Landscape)
  • ExpandContainers:コンテナやキャンバスの中のコントロールを含むか?(複数ページにするか?)のbool

ということで早速使ってみる。

事前準備

事前準備として、[設定]から[PDF関数]をオンにし、アプリを再起動しておく。

作成したPDFコンテンツをPDFViewerに表示する

こんな感じのスクロールあり(PDF化時に複数ページが必要になる)コンテナとコントロールを準備して、
ボタンからこのコンテナを対象としてPDF関数を呼び出し、変数「glbPDF」に作成されたコンテンツを入れる。
そしたらPDFViewerのDocumentプロパティにglbPDFを設定して、
PDF関数を入れたボタンを押すと、こんな感じで複数ページのPDFが表示される!

PDF関数の引数を設定してみる

さっきはPDF関数の引数を何も指定しなかったので、PDFを下までスクロールしても「テキスト4」と書かれた一番下のラベルがPDFに載っていない。
ということで改めて引数「ExpandContainers」にtrueを設定してあげて、再度実行すると、
コンテナ内のすべての要素がPDF化される!
それ以外にもこんな感じで色々と指定(DPI 72, 余白25mm、横向き)してあげてPDF関数を呼ぶと、
指定した通りにPDFが作られる!

これは便利!

作成したPDFを保存する

続いて作成したPDFをファイルに保存してみる。

ファイルの保存にはPower Automateを経由する必要があるので、まずはPower Apps(V2)トリガーでフローを作成し、引数に「ファイル」を用意する。
そしたらPower Apps側からはこんな感じで呼び出してあげれば準備完了。
※nameにはファイル名、contentBytesには作成したPDFコンテンツを指定(今回は変数glbPDFに入っているので、変数を指定)

SharePoint Online ドキュメントライブラリ/OneDrive

ドキュメントライブラリに保存するときは「ファイルの作成」アクションから

  • ファイル名:「式」タブからtriggerBodyに入れたファイル名 or 保存したいファイル名
  • ファイルコンテンツ:「動的なコンテンツ」タブで指定できる値

をそれぞれ指定してあげる。

※ファイル名に入れるtriggerBodyの式

triggerBody()['file']['name']
OneDriveも同様。
実行するとこんな感じでPDFができる。

SharePoint Online リスト 添付ファイル

SPOリストの添付ファイルに保存した場合はこんな感じで指定。
実行すると無事添付ファイルに保存される。

Outlookでメールに添付

Outlookでメールに添付したいときはこんな感じで指定。

実行するとメールの添付ファイルとして送信できる!

制限事項

こんな感じで便利なPDF関数だけど、実験的機能なので制約もいくつかある。

PDF化対象は現在のスクリーン内にあるもののみ

PDF化できるのはPDF関数を実行した画面やその画面の中にあるコントロールのみに制限されている。

別画面のコンテナ(Container2)を呼び出そうとするとこんな感じでエラーが出る。

ネストされたギャラリーは対象外

また、ネストされたギャラリーは印刷できない。

こんな感じで入れ子になっているGallery2(5までの数字が入っている)をPDF化してみると、
印刷されるけど表示が乱れる。
さらに中に入っているGallery2自体をPDF化しようとすると、
エラーが発生する。

コメント

タイトルとURLをコピーしました