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ファイルに出力できた。
