2009/12/02

PHPExcel の PDF出力で日本語文字化け2 携帯ビューア

PHPExcel の PDF出力で日本語文字化け の続き
文字化けは解決したけど「携帯電話のPDF Viewer (Acrobat Reader LE)で文字が表示できない」の解決編

PHPExcel は TCPDF を使っているみたい(FPDF を使っているのだと思い込んで、遠回りした)


で、文字が表示されない理由ですが arialunicid0 系フォントを指定すると
「OS標準のフォントを利用」という事になるらしい
OS標準のフォントてのを、携帯PDFビューアが認識できないのだろう(と解釈)

非標準のフォントだと、PCの場合ネットからフォントをダウンロードするけど、携帯には、おそらく無理、かといって、フォントを埋め込んだらPDFが肥大化して、都合が悪い

次に、PDFの日本語標準フォントは何かと調べると「小塚明朝」「小塚ゴシック」の二つ
さすがにコレは、携帯でも入ってんじゃね~のと思いつつ
PHPExcel の PHPExcel/Shared/PDF/fonts を覗いてみるが、それっぽいファイルがない

ということで TCPDF のフォントが欲しいついでに、最新へ入れ換えてみる事に


PHPExcel/Shared/ の PDF ってのが TCPDF そのもの

TCPDFの公式サイトから

tcpdf_4_8_017.zip ←この文章時点

をダウンロード → 解凍
上記の PHPExcel/Shared/PDF と置き換える(並べると中身が同じなのが分かる)


次に、昨日いじった PHPExcel/Writer の PDF.php の 133行目あたりへ移動

// Set the appropriate font
//$pdf->SetFont('freesans');
//$pdf->SetFont('arialunicid0-chinese-simplified');
//$pdf->SetFont('arialunicid0-chinese-traditional');
//$pdf->SetFont('arialunicid0-korean');
//$pdf->SetFont('arialunicid0-japanese');
$pdf->SetFont('kozgopromedium'); // ←フォント指定を 小塚ゴシック にする
$pdf->writeHTML($html);


以上のように、フォントを小塚ゴシックにすることで、携帯ビューアーでも見られるようになりました

0 件のコメント: