tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Apex開発『apex:iframe』とrenderAs="pdf"

VisualforceページではrenderAs="pdf"と宣言することでPDF形式に変換することができます。
f:id:tyoshikawa1106:20150221222911p:plain


たまにですがPDF出力用の画面をプレビュー的な感じで表示したい...というようなことがあります。『renderAs=""』と切り替えることで表示させることが可能です。
f:id:tyoshikawa1106:20150221223731p:plain


これはこれでいいのですが....、色があるのでまぁまぁきれいに見えますが、やっぱりPDF用に準備した画面を表示させると少し物足りない感じがします。


こういうときは『apex:iframe』を利用することで標準ヘッダーやサイドバーのある画面にPDF形式で表示できます。
f:id:tyoshikawa1106:20150221224238p:plain


『apex:iframe』は横幅調整もある程度対応してくれるので、表示列数を1列から2列にしたくなっても簡単に対応できます。
f:id:tyoshikawa1106:20150221224511p:plain


別ページを埋め込む形になるので、画面の操作による結果の反映をさせることはすこし難しいですが、URLパラメータを利用することでiframe内の表示内容を切り替えたりすることは可能です。


一年ぐらい前になりますが、デモ動画を作ってみました。


よくある白黒の線と文字だけのPDF画面を普通の画面として表示させると少しさみしい感じになりがちですが、iframeを利用して表示するといい感じにできると思います。