[salesforce]VisualforceでPDF出力時の日本語対応

By |8月 13, 2009|salesforce, |


Visualforceの<apex:page>タグには、renderAsという属性があります。
これは、Visualforceで出力するページをいろいろなページフォーマットに変換して出力してくれる
という大変便利な機能です。

現時点ではPDF出力のみサポートされていますが、今後色々な形式をサポートしてくれることを期待です。

ですが、このPDF出力機能、残念ながら2バイト文字に対応しておりません。

試しにやってみました。

[sourcecode language=”javascript”]
<apex:page standardController="Account" renderAs="pdf">
<style> body { font-family: Arial Unicode MS; } </style>
1111abcdefghijkmnlopqrstuvdxyz<br />
<br />
あいうえおかきくけこさしすせそ<br />
<br />
株式会社ウフル<br />
<br />
2222abcdefghijkmnlopqrstuvdxyz<br />
</apex:page>
[/sourcecode]

こんなのを書いて、ページ表示。

ws000002

こんなかんじ。フォント指定したらいけるかと思ったんですがダメでした。

ちなみにVisualforceのリファレンスには、2バイト文字のPDF出力をサポートしてないのは

<apex:pageBlock>と<apex:sectionHeader>の二つってかいてるんですが、

今まで使った限りどのAPEXタグ内でも2バイト文字は出力されなかったんですが。。

日本語部分は抜けちゃって表示されちゃいます。

とりあえず当面は日本語出力させたい場合は、外部のPDF出力サービスを使う必要があるようです。

AppExchangeのPDFサービス