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>
こんなのを書いて、ページ表示。
こんなかんじ。フォント指定したらいけるかと思ったんですがダメでした。
ちなみにVisualforceのリファレンスには、2バイト文字のPDF出力をサポートしてないのは
<apex:pageBlock>と<apex:sectionHeader>の二つってかいてるんですが、
今まで使った限りどのAPEXタグ内でも2バイト文字は出力されなかったんですが。。
日本語部分は抜けちゃって表示されちゃいます。
とりあえず当面は日本語出力させたい場合は、外部のPDF出力サービスを使う必要があるようです。







8 月 14th, 2009 at 09:18
下記のような記述ならばうまく表示できました。
フォントが一種類しかないのが残念です。
body { font-family: Arial Unicode MS;}
This page is rendered as a PDF
日本語出力
abcdefghijk
あいうえおかきくけこさしすせそ
アイウエオカキクケコサシスセソ
8 月 14th, 2009 at 09:20
@とおりすがり
HTMLタグが表示できないみたいですね。
apex:pageから始まり、htmlタグとstyleタグとbodyタグを使っています。文章をbodyで囲んでいます。