Power Apps

Power Apps の PDF Viewer でアプリ埋め込みファイルを表示したい

  • 2020.03.24

Power Apps アプリで PDF ビューアー コントロールを利用する際の設定や制限事項は以下が参考になりますが、
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/controls/control-pdf-viewer

記載されている制限事項をまとめると、こんな感じです。

  • コントロールの Document プロパティに HTTPS でアクセスできるファイルパスを指定
    (リダイレクトや HTML ビューはだめ)
  • 認証を必要としないこと、クロスドメインの制約にひっかからないこと

本当は SharePoint ライブラリに保存した PDF ファイルを表示したかったのですが、上記制約の 「認証がいらない」 点にひっかかるのでファイルの URL を Document プロパティに指定するだけではダメそう、、フローでコンテンツとして取得することでできそうですが、そこまでやるのは少し面倒だし、それなら PDF ファイルを開く HyperLink でよいなあ、、と

ということで、上記 URL に記載のある 「PDF ドキュメントをアプリのメディアリソースとして含めることで、これらの制限を回避できます。 これにより、PDF ビューアーコントロールは常にドキュメントを表示できます。」 というのを試してみることにしました。

でも、よく考えるとファイルってアプリのリソースにできたっけ?

[画像]、[ビデオ]、[オーディオ] 念のためすべて試してみたけど、PDF ファイルを追加しようとするともちろんエラーになる。

ということで、PDF ファイルの拡張子を画像ファイルの拡張子に変更してメディアに追加してみると、リソースとして追加はできた。

で、PDF ビューア― コントロールを配置して、Document プロパティに指定してみたらできた。プレビューしてみるとスクロールもできてる。

PDF ビューアー コントロールが試験段階機能だからだと思いますが、同じことであれ?と思われた方のヒントになればと思います。SharePoint とか OneDrive に保存したファイルも直接 URL 指定できるようになればいいのにな。

おまけ

■ ShowControls プロパティ true でメニューを表示

■ クリックで他の PDF ファイルに切り替えたい場合

  1. ラベルとかアイコンとかボタンなどを追加し、OnSelect プロパティで変数に値をセットするようにしとく

    ※ コンテキスト変数 (UpdateContext) でもいいですが、上図例では次の画面に進んだときも選択された言語を保持したかったので
  2. 切り替えたい数だけ (ラベルなど) メニューとして利用するコントロールを配置し、同じ変数の値を変更するよう設定
  3. PDF ビューアーコントロールの Document プロパティに指定
    変数の値により、表示するPDFファイル (ここではリソース名で指定) を変更するように

あわせてなにかのヒントにいただければうれしいです。

関連コース

  • CI613-H Power Apps による Microsoft 365 活用
    Power Apps を利用した業務アプリの作成を Microsoft 365 に含まれるライセンスを活用して行えることを中心にご紹介します。また Power Automate のフローなど Microsoft 365 の各種機能と連携する方法も含めて実践的な実習をベースとして習得いただけます。作成したアプリを共有する方法についても解説します。これから Power Apps をはじめる方におすすめのコースです。
  • CI619-H Power Apps Premium によるアプリ作成
    Power Apps Premium (有償プラン) の利用を前提とし、Dataverse の利用方法や Dataverse をデータソースとしたキャンバスアプリ、モデル駆動型アプリの作成方法、Power Platform のその他サービスとの連携まで実践的な実習とともに解説します。
  • CI614-H SharePoint & Power Apps & Power Automate 実践ラボ
    実際にアプリを作成する際によくある疑問点をあげつつ、実践的なテクニックや Tips を確認しながら一緒にアプリやフローを作成するラボを行う上級者向けの超実践コース

お問い合わせ

イルミネート・ジャパンが提供するトレーニングやサービスに関するご相談など、
お気軽にご連絡ください。

担当者に相談する