PDFを画面内に表示したい
PDFをアプリ内に表示したいのですが、可能でしょうか。
用途としては、帳票の選択画面(プレビュー付)を作りたいと考えています。
リソースに帳票毎のPDFを登録しておき、対象の帳票ボタンを押すと同画面内にPDFを表示する。(やりたいことのイメージは添付画像)
※コンポーネントの「ファイル/PDF閲覧」は、別画面(別アプリ?)が開くような動きに見えました。パラメータにコントロールを指定することができませんでした。

-
渡辺様
ご質問いただきありがとうございます。
PDFの閲覧は別の画面をからPDFを表示する機能となり、
ご質問を頂いた「PDFをアプリの画面内のコントロールに埋め込む」方法はございません。代替案とはなりますが、Webサーバーに配置したPDFの閲覧であれば、
PDFを埋込表示するページをご用意いただき、画面に配置した「ウェブビュー」から表示することでPDFの埋め込み表示を行えるかと存じます。例えば、Windowsであればiframeなどを用いたPDFの埋め込み表示、AndroidやiOSの場合は「PDF.js」や「Google Docs Viewer」などがお使いいただけるかと存じます。
「ウェブビュー」でWebページを表示した際の動作はOS種別・バージョンなどによって異なるため、上記のようにOS毎に異なる方法を取る必要がございます。
また、これらの方法は今後のOSのバージョンアップなどによりお使い頂けなくなる場合がございます。ご不便をおかけしますがご了承下さいますと幸いです。 -
渡辺様
ご返信遅くなり申し訳ございません。
バージョン4.2時点でUnifinityは file:// から始まるURIには対応しておりません。
uapファイルからの相対パスで ..\..\work\xxxx.xxx のようにご指定頂ければ、ローカルのファイルをWebViewで表示することが出来ます。例えば、以下の画像のように処理を作成することで、データベースに保存したPDFデータ(base64)をファイルとして書き出し、その内容をWebViewに表示することが可能です。

なお、Androidでは、システムから提供されるWebViewのコンポーネントそのものがPDFの表示に対応していないため、上記の方法でもPDFファイルを表示することが出来かねます。
AndroidでWebViewにPDFファイルを表示したい場合には、「PDF.js」や「Google Docs Viewer」などをお使いいただくことをご検討下さいますと幸いです。
-
渡辺様
ご確認頂きありがとうございます。
先日のご案内の内容でお試し頂けますと幸いです。ちなみにAndroidのWebViewのコンポーネントが対応する可能性もあるのでしょうか。
またiOSのWebViewのコンポーネントは対応していて、同様の方法で可能ということでしょうか。現状はWindowsで実現できればよいので、Android/iOSで不可能でも問題ありませんが、情報としてつかんでおければと思っています。UnifinityのWebViewコントロールはOSから提供されるブラウザコンポーネントを用いて実装しております。
そのため、Androidが提供するブラウザコンポーネントでPDFの直接表示がサポートされると、UnifinityのWebViewコントロールでも同様にPDFの閲覧が可能となる可能性がございます。iOSにつきましては現時点では先日の手法でWebViewコントロール内でPDFを閲覧できることを確認しています。
サインインしてコメントを残してください。
コメント
7件のコメント