この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

「PDF として保存」機能の Visualforce ページへの追加

「PDF として保存」要素をページに追加して、ページの表示形式 (HTML または PDF ファイル) を動的に切り替えることができます。また、PDF ファイルの名前を設定することもできます。
次のページには、取引先の取引先責任者のリストが表示されます。このリストは画面に表示したり、[Save to PDF (PDF に保存)] リンクをクリックして PDF ファイルとしてダウンロードしたりできます。

この例には、2 つの重要な要素があります。1 つ目の要素は、<apex:page> コンポーネントの renderAs および contentType 属性です。これらは式を使用して動的に設定されます。これらの式の値によって、ページの表示形式を制御します。

2 つ目の要素は <apex:form> で、ページを PDF に保存するためのユーザインターフェースを提供します。このフォームには、saveToPdf アクションメソッドをコールする <apex:commandLink> という要素があります。<apex:param> コンポーネントは、ファイル名を設定するためにコントローラコードで使用される PDF ファイルの名前を提供します。

フォームは、ページが HTML として表示される場合にのみ表示され、PDF 版では表示されません。このように表示するには、ページが PDF ファイルとして表示される場合に <apex:form> コンポーネントの rendered 属性を false に設定します。

次に、各自のページで簡単に再利用できるコントローラ拡張を示します。

この拡張のメイン部分はシンプルです。renderingService プロパティでページの表示形式 (HTML または PDF) を制御します。ページが読み込まれると値がデフォルトの null に設定され、saveToPdf アクションメソッドがコールされると「PDF」に変わります。<apex:page> コンポーネントの renderAs 属性は、renderingService を参照します。「PDF」以外の場合、ページは通常 HTML として表示されます。「PDF」の場合、ご推察のとおり、ページは PDF ファイルとして表示されます。

renderedContentType プロパティは、Visualforce <apex:page> コンポーネントの contentType 属性で使用される MIME タイプの値を提供します。この値を設定すると、サーバ応答に影響します。これにより、クライアントブラウザに応答の形式 (この場合は HTML または PDF) を通知する HTTP ヘッダーが追加されます。

また、renderedContentType プロパティは、ダウンロードされる PDF ファイルの名前も設定します。ファイル名は、ページの <apex:param> コンポーネントを使用して設定される renderedFileName プロパティから取得します。「#」とファイル名を contentType に追加すると、クライアントブラウザに送信されるファイル名が設定されると記載されていますが、この変換は機能しません。そのため、ファイル名を提供するヘッダーが設定されます。

ダウンロードされる PDF のファイル名を設定する必要がない場合、renderedContentType および renderedFileName プロパティは無視しても問題ありません。「PDF に保存」機能を追加するこの簡単なアプローチについては、「Visualforce PDF 表示の使用時に使用可能なフォント」を参照してください。