ボタン押下時にPDFファイルを添付する方法

今日は、Visualforceで作成したPDFファイルを、ボタン押下時に「メモ&添付ファイル」に保存する方法をご紹介。

○PDFファイル

まず、PDFファイルをVisualforceで作成します。

名前:PdfPage

This is PDF File.

○添付ファイル保存Apex

次に、PDFファイルを「メモ&添付ファイル」に保存するApexを作成します。

カスタムボタンのJavaScriptから呼び出せるようにWebServiceメソッドにし、PDFファイルを保存するレコードのIDを引数で受け取るようにします。

Page.<Visualforceページ>.getContent()で、Visualforceページの本文のデータが取得できます。

global class PdfUtil {
  WebService static void create(ID id) {
    // 添付ファイルに登録
    Attachment attachment = new Attachment();
    attachment.Name = 'Test.pdf';  // ファイル名
    attachment.Body = Page.PdfPage.getContent();  // 本文
    attachment.ParentId = id;  // 関連先
    insert attachment;
  }
}

○カスタムボタン

最後に、上記で作成したApexを呼び出すカスタムボタンを作成し、ページレイアウトに表示します。ここでは、Test__cというオブジェクトにカスタムボタンを作成しています。

表示の種類:詳細ページボタン
動作:JavaScriptを実行
内容のソース:OnClick JavaScript

{!REQUIRESCRIPT('/soap/ajax/20.0/connection.js')} 
{!REQUIRESCRIPT('/soap/ajax/20.0/apex.js')}

sforce.apex.execute(
  'PdfUtil', 'create', {id:'{!Test__c.Id}'});
document.location.reload();
alert('PDFファイルを作成しました。')



動作はこんな感じ↓

ボタン押下前
20110803_1

ボタン押下後

20110803_2

コメント(0)