2015年02月19日

Web開発初心者の!VisualforceでPDF出力画面を作るときにハマりがちなこと

Salesforceで開発屋さんをやっていると、「見積書を独自フォーマットで出したいから作って」と言われることがよくあるようです。

ところがこのPDF出力、結構曲者なんですよね。。
私が思いっきりハマった「つまづきポイント」を纏めてみました。

☆日本語出ない事件
ものっすごい根本的なところなのですが…

日本語フォント、対応しているものが
Arial Unicode MS
だけ。らしいです。

つまり、別のフォント指定したりしてたら、日本語は表示されない、と…。

CSS自体ほぼ初体験だった私には、フォントを指定するという発想がなく……
先人たちの叡智(技術ブログ)に助けられました。。

☆<td>〜</td>の中では、2バイト文字が自動改行されない
表を構成する table タグ。
使いどころも非常に多い、出ずっぱりタグですよね。
その中で1つのセルを表すtdもやっぱり登場回数の多いタグ。
普通であれば、セルの中の文字は、セルの端まで行くと自動的に改行して表示される…と、思いますよね。

ところが、PDFの画面では、アルファベットなどの半角文字は改行されても、ひらがなカタカナ漢字、つまり全角文字は自動改行されません。

セルを突き抜けて、どこまでも右に突っ走る、テストで入れた255文字の「あああああ」…

壮観でした(ニガワラ)

回避策は、
文字列を程よい長さの文字列群に区切ってリスト化してあげる
閾値を超えたら<br>タグが入るように組む
などなど、らしいです。

当然、私が考えついたものではありません。
これまたネット上の叡智の賜物(笑)

ブログ書いてくださってる人たち、本当にありがとうございます

​☆改ページがあずましくない事件
​帳票、というと、行数が多くなって複数ページに渡っちゃう場合は、各ページにヘッダを出して、その下にデータ…と続いて欲しいですよね。
それが、残念ながら何も考えないでいると、できません。
一ページに収まらなかった行は、そのまま次のページに突き抜けます。

これについては、SFDCのヘルプドキュメントがありました!!


ざっくりいうと、改ページしたいところで  page-break-after:always; を入れなさいよ、ということ。

ただ、1ページに収まるデザインをして、収まるところで改ページ指示をしてあげないといけないらしいです。

やったことないけど、repeatして行を動的にとってきてるような場合は、行数に注意…なんですかね。












posted by あやままま at 15:06| Comment(1) | 超初心者のSalesforce開発メモ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
preで「white-space:pre-wrap」のstyleを追加すれば解決ですよ
Posted by guanrg at 2015年03月05日 13:16
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。