この記事の目次
【Salesforce】render as属性でPdfを表示させる方法

Visualforceページとは

SalesforceでPdfを保存させる方法

render As属性とは
ある特定の帳票やページをPdfとして表示させるのに欠かせないのがrender as属性です。 renderメソッドは、利用者がユーザーインターフェイス上で帳票の出力や表示といった指示を出した時に反応して、命令通りに出力や表示をしてくれるメソッドのことです。 このメソッドを使ってカスタマイズの設定をおこなうことで便利な機能や様々な操作が簡単におこなえるようになります。Pdfを表示させるための操作
この画面から帳票やPdfを表示させたいというページのPdfはどうやって表示されるのか
renderAsでPdfを指定すると、ユーザーインターフェイス上で帳票出力等のボタンをクリックすると、Visualforceページがブラウザの設定にあわせて、ブラウザに表示するかPdfのファイルとしてダウンロードさせるようになります。rendeAsで表示させたPdfの弱点とは
Salesforceでは、renderas属性を使用してPdfを表示させるように設定すると、ボタン1つでPdfをユーザーインターフェイスに表示させることが出来ます。 この機能はとても便利で業務の効率をアップさせ、生産性を上げてくれるという長所もあります。 しかし、その一方でrenderasを使ってSalesforceのユーザーインターフェイス上でPDFを表示させることの弱点もあります。コーディング知識が必要
1つめはコーディングの知識が必要であるという点です。renderasを使ってPdfを表示するように設定する際、Salesforceのコードを変更する必要があります。 そのため、間違ったコードを埋めてしまうと正しくPdfが表示されなくなることもあるので、コーディングの知識は必須です。開発コストがかかる
2つめは、開発のコストがかかるという点です。ごく簡単なPdfを表示させるだけという場合であれば、社内で簡単に作業しコストを抑えることも可能です。 しかし、帳票の仕様が複雑であれば、場合によっては外部の力を借りる必要性が出てくるケースもあり、手間と開発にかかるコストが増えます。ガバナ制限がある
3つめは、ガバナンス制限があるという点です。Salesforceでは、多数のユーザーがサーバーのリソースを共有して使用しています。 そのため、1つの組織が過度にリソースを食いつぶしてしまうと、サーバーに負荷がかかって、ほかのユーザーがSalesforceを利用する際に正常に表示できない、動作が重いといった不具合が発生してしまいます。 そうならないために、Salesforceを開発するうえでのルールとして、ガバナ制限があります。 これらのガバナ制限では、それおれの項目で数値が決められています。また、Pdfの表示を設定する際に使用するAPEXについても文字数制限があるので注意が必要です。フォントが固定
4つめはフォントが固定だという点です。Salesforceで表示させるPdfは、普段使用するWordやExcel等と違って、フォントがかなり限定されています。しかも、使用するフォントがあまり恰好のいいものではないため、見栄えはあまりよくありません。 そのため、社内処理やピッキング・出荷等の作業に使うのは問題ないと感じても、見積書や請求書などお客様に送る書類としては不向きと思われるかもしれません。SalesforceでPdfを表示させるのに注意すべきポイント

Pdfは印刷用に最適化
Visualforceページで表示させるPdfは、印刷用として最適化されたものにしておく必要があります。但し、Salesforce1においては、Pdfでの表示をサポートしていないので注意が必要です。フォームやJavaScriptは使用しない
ボタンや入力などフォーム要素がある標準コンポーネントや書式の設定内にJavaScriptを使用するコンポーネントではSalesforceのPdf表示機能を使うことが出来ません。フォントは決められたものを使用
Pdfで表示しようとするVisualforceページで使用するフォンはVisualforce Pdf表示サービスで使えるフォントを選ぶ必要があります。サポートしているフォントとしては、Arial Unicode MSやHelvetica、Times、Courierがあります。サポートされていないフォントを使用するとTimesで表記されます。テキストが表示されない場合の対応
Salesforceのrenderas=””pdf””で表示させたPdfの中には、マルチバイト文字や外国語で使用されるようなアクセント記号がついている文字は、テキストとしてうまく表示されない場合があります。こうした場合には、対応したフォントを使用する必要があります。Pdfのファイルサイズに注意
Salesforceでは、どんなPdfでも表示できるというわけではありません。Pdfのファイルサイズには上限があるので、規定のサイズ内に収まるよう設計する必要があります。 まず、Salesforceで表示するPdfの作成時、最大応答サイズは表示前のサイズで15MB未満と決まっています。 そして、生成されるPdfで最も大きいサイズは60MBまでです。Pdfの中には、画像が含まれるものもあるかと思いますが、その場合、使用する画像を合計した最大サイズは30MBです。サポート対象外の画像
SalesforceでPdfを表示する時、Pdf内に画像が含まれていることもあります。 その画像が、data:URLという形式で記載されている場合、この画像はサポートの対象外となっています。Pdf表示できないケースを知っておこう
Salesforceを使って開発したユーザーインターフェイスで、Pdfが表示できたり、保存できるのはとても便利で、データの管理や情報共有などが容易になり、業務効率のアップにもつながります。 しかし、SalesforceではrenderAs=””Pdfを使用しても、Pdfを表示できないという事象が発生することがあります。 ここでは、どういった場合にPDFが上手く表示されないかをご紹介します。グラフはPdfで表示されない
Pdfで表示させたいものの中に、グラフが載っているものもあるかもしれません。こうした、Visualforceのグラフは注意が必要です。 Visualforce Chartingで作成するグラフでは、JavaScriptを使用しているのでPdfとして表示することができません。スタイルシートのurl値が空白
Salesforceをカスタマイズするのに、スタイルシートを使用することがあります。その時に、スタイルシートの中でurl値が空白になっていると、url値の空白があるページはPdfとして表示されなくなります。 スタイルシートを使ってカスタマイズしている際に、Pdfが表示されないという事象が発生した時には、url値が空白になっていないか確認するようにしましょう。renderasを使用してカスタマイズしてみよう
この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞