VisualforceページでのコンテンツPDF出力

今回はSalseforceのコンテンツに関するVisualforceページを実装するときに便利な機能を紹介します。 コンテンツにはダウンロードの際にPDF変換してくれる標準機能がついています。

2013-09-12_224824

アップロード時は次のようなExcelファイルでも・・・

2013-09-12_225023


次のようにPDFに変換できます。

2013-09-12_224931

この便利な機能はVisualforceページでも簡単に実装できます。
普通のダウンロードを実行したい場合は次のURLで実行できます。

'/sfc/servlet.shepherd/version/download/' + ContentVersionのID;


PDFに変換したい場合は上記URLの末尾に次のパラメータを追加します。

?asPdf=true

ContentVersionはコンテンツのバージョンを管理しているオブジェクトです。
コンテンツに関するオブジェクトはContentVersionとContentDocumentの2種類ありますが、コンテンツのダウンロードを実行する場合はContentVersionのIDを指定する必要があります。

パラメータ追加後は次のような感じになります。

'/sfc/servlet.shepherd/version/download/06810000001Lk1zAAC?asPdf=true';

次のVisualforce画面を作成して正常に動作するか確認してみました。

2013-09-16_232203

ボタンをクリックするとJavaScriptが呼び出され、PDFファイルがダウンロードがされます。

2013-09-16_232409

今回の検証に使用したサンプル画面のコードは次のとおりです。

今回はシンプルにしたかったので詳細画面にボタンを表示する形にしてありますが、実際にはコンテンツの一覧画面でそれぞれのレコード内にリンクかボタンを表示してPDF出力できるようにするといった使い方が便利だと思います。