MBFpdfでバグを発見した!!バージョンは1.0b。
[“](ダブルクォーテーション)が出力できないというものだ。
$l+=$ascii ? $cw[$c] : $hwkana ? 500 : 1000;
上のソースの$cw[$c]の$cにダブルクォーテーションが入ってるのだが、
undefined index ” と言われてしまう…。
そこで、$cwをprint_rで表示してみたら、
array(…,[\”] => 500, …);
という記述を発見。ダブルクォーテーションあるけれど、バックスラッシュでエスケープされてるじゃないか!?まあこれが正しいと仮定した場合、$cw[“]は定義されていないわけだから、$cが[“]の場合、$c = ‘\”‘;にしてしまえばいいんじゃないかと思ったので、mbfpdf.phpに手を入れることを決意!!
MBMultiCellメソッドを修正。
//Get next character $c=$s[$i]; // 以下3行を追加 if($c === '"'){ $c = '\"'; }
その後、MBWriteメソッドを修正。
行番号は、上記の作業後なので、この付近と思ってください。
//Get next character $c=$s[$i]; // 以下3行を追加 if($c === '"'){ $c = '\"'; }
こうしたところ、ダブルクォーテーションがPDFファイルに出力できた。