【Salesforce】VisualforceのPDFで日本語を表示する

【Salesforce】VisualforceのPDFで日本語を表示する

Salesforceで帳票を出力する際、VisualforceによるPDFを開発することが多いですよね。

しかし、VisualforceでPDFを出力する際は普通に作るだけでは日本語が表示できなかったりします。

久しぶりにVisualforceでPDFを開発した際に、日本語の表示方法を忘れていたのでメモです。

<apex:page id="Page"
 standardStylesheets="false"
 showHeader="false"
 sidebar="false"
 applyHtmlTag="false"
 renderAs="PDF"
 >

<head>
  <style>
  @page {
    size: 8.27in 11.69in;
    padding: 0;
  }
  body {
    font-family: Arial Unicode MS;
    font-size: 10pt;
    text-align: left;
  }
  </style>
</head>

<body>
  <div>
    <span>日本語確認</span>
  </div>
</body>

</apex:page>

メモというかA4サイズ用のテンプレートに近いですね。

まず、VisualforceのPDFで日本語を出力する際に使用可能なフォントは「Arial Unicode MS」のみです。

上のコードではbodyのCSSに設定されていますね。

次に、bodyの中でstyleタグを使用することが出来ないようです。

そのため、headとbodyを明確に指定してheadの中にstyleタグを記述しています。

さらに、明確にheadとbodyを指定するためにpageタグのapplyHtmlTagをfalseとしています。

これにより、自動でhtmlタグやbodyタグが作成されなくなり、記述したheadとbodyが有効になります。

これらを行うことにより、やっとPDFに日本語を表示することができるようになります。

使用可能なフォントが増えると良いのですが、難しいところですね。

HTML帳票にすれば解決することが出来るかもしれませんが、自動で保存する際などに使えないんですよね。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です