【2022/10/12 部分的な日本語対応を確認したので更新】
Power Appsの最新 Authoring version 3.22094.7 で試験的な機能として "PDF function" が追加されました。 これまではPrint関数を利用することでキャンバスアプリの画面を印刷、PDF化していましたが、今回のアップデートでは直接PDFを作成できます。
それだけでなく、PDF関数では現在表示中のスクリーン以外のコントロールもPDF化することができます。
この投稿ではPDF関数の使い方、オプション、注意事項などを紹介します。
PDF化の対象
PDF関数では説明にあるとおり、スクリーン、ギャラリーコントロール、コンテナコントロールをPDF化の対象に指定可能です。
そのほかのコントロールを指定した場合にはエラーが表示されます。
使い方
PDF関数は動作関数です。ボタンのOnSelect、スクリーンのOnVisible などのイベント系のプロパティ上でのみ利用できます。
PDF(<PDF化対象のコントロール名>) または PDF(<PDF化対象のコントロール名> , <オプション>)
この関数の結果はPDF (Blob) を返します。これをPower Apps上で表示する場合には、変数に対してPDFを設定し、PDFビューワーコントロールを利用してください。
また、Power Automate を利用することでOneDrive, SharePoint Onlineのドキュメントライブラリにファイルを保存できます。(詳細は後述)
オプション
PDF関数で指定可能なオプションは以下の5つです。
オプション名 | 説明 | 指定方法 |
---|---|---|
Orientation | 生成されるPDFが横長か縦長かを指定する | PaperOrientation.Landscape または PaperOrienttation.Portrait |
Size | 生成されるPDFのページサイズ | PaperSize.A0 、PaperSize.B1 など |
Margin | PDF作成時の余白 | "12pt 12pt 12pt 12pt" など文字列で4辺の余白を指定 |
DPI | PDFファイルの解像度(dpi) | 96 などの数値 |
ExpandContainers | 対象の非表示部分を展開してPDF化するか | true または false |
PDF(Screen1, {Orientation:PaperOrientation.Portrait, Size: PaperSizer.A4, ExpandContaniers: true})
オプションを含める場合は上記のように指定します。
Size
についてはPaperSize. まで入力すると指定可能な候補が表示されます。その中から利用したい用紙サイズを選択してください。
注目は ExpandContainers
のオプションです。印刷機能 (Print関数) では多くのユーザーがギャラリーコントロールの全行を表示できない点に不満を抱えていました。
PDF関数ではこのオプションを有効にすることで、ギャラリーコントロールの非表示部分 (スクロールしないと表示されない行) までPDFに含めることが可能です。
ファイルの保存 (Power Automateの利用)
PDFファイルを保存する場合には Power Automate を活用します。
Power Automateのトリガー "Power Apps (V2)" では入力パラメータとしてファイル型を指定できます。
Power AppsからPDF関数の結果を受け取って、それをOneDriveなどに保存してください。
なお、ファイルをPower Appsから受け渡す場合には以下のように記載します。
FlowName.Run({file:{name: pdfFileName.pdf, contentBytes : PDF(Screen1)} } )
注意事項
ギャラリーコントロールをPDF化する場合、行の数に応じてPDF化にかかる時間が変わります。
また、未ロードの行(初期表示で100行目以降)はPDF化の対象になりません。
PDF関数では対象が日本語を含む場合、文字化けが発生するという問題があります。この点はGAまでに改善されると期待していますが、日本のユーザーは注意してください。
【2022/10/12】
本日最新のPower Apps authoring version (3.22102.9) にて、PDF関数実行時の文字化け問題が解消されていることを確認しました。
ただ文字化けはありませんが、一部文字がかけているケースがあります。まだもう少し注意が必要そうです。