はじめに
Power Appsで複数ページにわたるリスト(Gallery)を印刷したいという要件はよく出てきます。
前編では、通常の方法では複数ページのリストの印刷ができない理由を解説しました。
本記事は2部構成です:
-
【後編】(この記事): PDFコントロールを活用した印刷の実現方法
後編では、Power Automateを活用した実装方法を解説します。
解決策の流れ
Power AppsでPDFを生成する
前編で確認した通り、PDF()関数を使えば複数ページのリストをPDFとして生成できます。
印刷用画面の準備
画面名: PrintScreen
// Galleryの設定(重要)
Gallery1.Items = MyCollection // 複数アイテム
Gallery1.Height = 600 // 画面の高さ600px
Gallery1.TemplateSize = 80 // 各アイテム80px
Gallery1.ShowScrollbar = false // PDFにスクロールバーが表示されないようにする
PDF生成ボタンのOnSelect
// 1. PDF生成
Set(gblGeneratedPDF, PDF(PrintScreen, {
ExpandContainers: true, // すべてのアイテムを展開
Size: "A4",
Orientation: "Portrait"
}));
// 2. Power Automateフロー呼び出し
If(!IsBlank(gblGeneratedPDF),
Set(gblFlowResult, 'SavePDFAndGetURL'.Run(gblGeneratedPDF))
);
// 3. ブラウザで表示
If(!IsBlank(gblFlowResult.pdfUrl) && gblFlowResult.success,
Launch(gblFlowResult.pdfUrl);
Notify("PDFを表示しました", NotificationType.Success)
);
ポイント:
| ポイント | 内容 | 理由 |
|---|---|---|
ExpandContainers: true |
Gallery全体をPDFに展開 | スクロール領域も含めて全アイテムを表示 |
Gallery.Height |
全アイテム分の高さを設定 | 全アイテムがPDFに含まれるようにする |
ShowScrollbar: false |
スクロールバーを非表示 | PDFにスクロールバーが表示されないようにする |
Power Automateフローを作成する
PDFビューアーコントロールでは印刷できないため、Power Automateを使ってSharePointに保存し、ブラウザで開く方法を採用します。
フロー名: SavePDFAndGetURL
フローの構成(3ステップ)
1. トリガー:Power Apps V2
入力パラメータを追加します:
| パラメータ名 | 型 | 説明 |
|---|---|---|
pdf |
ファイル | PDFのバイナリデータ |
2. ファイルの作成(SharePoint)
| 設定項目 | 値 |
|---|---|
| サイトアドレス | SharePointサイトのURL |
| フォルダーパス | /Shared Documents/ForPdf |
| ファイル名 |
pdf name(トリガーから) |
| ファイルコンテンツ |
pdf contentBytes(トリガーから) |
3. Power Appsに応答する
出力パラメータを設定します:
| パラメータ名 | 型 | 値 |
|---|---|---|
URL |
テキスト | SharePointサイトのURL/「ファイルの作成」の {body/Path}
|
Power Appsにフローを追加
Power Apps → 「Power Automate」 → 「フローの追加」 → SavePDFAndGetURL を選択
ブラウザで表示する
Launch()関数でブラウザを開きます。
// gblFlowResultからURLを取得してブラウザで開く
If(!IsBlank(gblFlowResult.pdfUrl) && gblFlowResult.success,
Launch(gblFlowResult.pdfUrl);
Notify("PDFを表示しました", NotificationType.Success),
Notify("PDFの表示に失敗しました", NotificationType.Error)
)
ブラウザでPDFが開いたら、PDFビューアの印刷ボタンクリック、またはCtrl+Pで印刷できます。
使い方
- PDF生成ボタンをクリック → SharePointに保存 → ブラウザで自動表示
- ブラウザのPDFビューアの印刷ボタンクリック、またはCtrl+P → 印刷
まとめ
PDF()関数 + Power Automate + SharePoint + Launch()関数の組み合わせで、複数ページのリスト(Gallery)を印刷できるようになりました。
ポイント
| ポイント | 内容 | 効果 |
|---|---|---|
ExpandContainers: true |
Gallery全体をPDFに展開 | 全アイテムがPDFに含まれる |
| Power Automate | SharePointに保存してURL取得 | ブラウザで開けるURLを取得 |
Launch() |
ブラウザで開いて印刷可能に | ブラウザの印刷機能が使える |
この方法で、大量データの印刷が実現できます。ぜひお試しください!




