MENU

PowerApps画面をPDF化する

まだプレビュー機能のPDF式ですが、可能であれば印刷画面を挟まなくて良さそうですので、適度に挑戦中。

目次

利用できるように設定する

デフォルトではONになっていない機能なので、アプリの設定画面から「PDF関数」の設定をオンにします。

Apps画面

ボタンのOnSelectに以下を設定

Set(
    fileName,
    Text( Now(), "yyyymmdd_HHmmss" ) & ".pdf"
);

// 画面全体をPDFに変換(横向き・A4・余白・コンテナ展開)
Set(
    pdfBlob,
    PDF(
        Screen1,
        {
            Orientation: "Landscape",   // 横向き。縦向きはデフォルトかPortrait
            Size: "A4",                 // "A4" / "Letter" 等の文字列
            Margin: "12.7mm",           // 0.5in = 約12.7mm
            DPI: 96,                    // 解像度。96は画面の大きさと同じ。
            ExpandContainers: true      // スクロールやコンテナ内の全内容を含める
        }
    )
);

// PDF作成のAutomateを起動
'AppsからPDF作成'.Run(
    fileName,                       // 1番目:テキスト(FileName)
    { file:{ name: fileName, contentBytes: pdfBlob }}  // 2番目:ファイル(FileContent)
);

Set変数のfileNameはPDFを保存するときのファイル名を格納。
ここではボタン押下時の日時で作成しています。

Set変数のpdfBlobはPDFを保存するときのファイルの中身を格納。
続くPDF()で、どのスクリーンをPDFにするか設定し、PDFの規格などを決めていきます。
規格は省略できそうでしたが、私は全部入れないとPowerAutomateに渡せなかったので、ひとまずこれで。
完成してからまた試行錯誤予定です。

続いて、PowerAutomateに必要な情報を渡していきます。

フロー名は「AppsからPDF作成」です。

PowerAutomate

Appsから起動したPowerAutomateでは、一番最初のトリガーにユーザー入力を2つ追加します。

1つ目はテキスト
左側のボックスは FileName を投入
右側のボックスは name を投入

2つ目はファイル
左側のボックスは FileContent を投入
右側のボックスは contentBytes を投入

続いて設定するアクションは、ファイルの作成 です

保存したいSharePointと、フォルダーパスを設定。

File Name にはトリガーの動的コンテンツ(1つ目)を設定。
File Content にはトリガーの動的コンテンツ(2つ目)を設定。

留意事項

  • 全角のアラビア数字(1、2など)は掲載されない
    (そもそも存在しない情報になる模様)
  • Visibleプロパティでfalseにしているものは掲載されない
  • XYで表示領域外になっているものは掲載される
  • スクロールバーを動かさないと見えないテキストも掲載される

表示領域外やスクロールバーを動かさないと見えないのも掲載されるのは凄く便利ですが、その分、縦長に大きさがびょ~んと伸びるので、PDF作成後に印刷するといった処理を続ける場合はよくよく検討しないと実用化できないと思います(;^_^A

広告

目次