MBFPDFのMultiCellで変なインデント?

By: Robert Agthe

FPDF+MBFPDFでPDFを作成していたところ
MultiCell()で複数行セルを出力したら変なインデントのようなものができた。

しかし、調べてみるとインデントが入っているというより
文字の幅が正しく取得できていないようで、同じくMultiCell()で別の文字列を出力したところ
特に問題なく表示できていた。

文字列の幅を取得する際、通常はFPDFのGetStringWidth()メソッドを使用しているが
MBFPDFではGetStringWidth()メソッドにて、現在のフォントのタイプがType0である場合
GetMBStringWidth()メソッドを使用するようオーバーライドしている。

しかし、残念なことに今回の不具合はこのGetMBStringWidth()メソッドで起きていた。
この修正に関しては、以下のブログが参考となった。

めも – PHPでPDF
http://d.hatena.ne.jp/noricyan/20101021/1287628551

この情報を参考に、GetMBStringWidthを下記のように修正する。

これできちんと表示することが出来た。

コメントを書く

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