8 月 13th, 2009 | ave | 2 Comments

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

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

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

試しにやってみました。

<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>

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

ws000002

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

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

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

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

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

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

AppExchangeのPDFサービス

2 comments to “[salesforce]VisualforceでPDF出力時の日本語対応” Leave your Comment
  1. とおりすがり says:

    下記のような記述ならばうまく表示できました。
    フォントが一種類しかないのが残念です。

    body { font-family: Arial Unicode MS;}

    This page is rendered as a PDF

    日本語出力
    abcdefghijk
    あいうえおかきくけこさしすせそ
    アイウエオカキクケコサシスセソ

  2. とおりすがり says:

    @とおりすがり
    HTMLタグが表示できないみたいですね。
    apex:pageから始まり、htmlタグとstyleタグとbodyタグを使っています。文章をbodyで囲んでいます。

Leave a reply

We love to hear your views.