概要
帳票をpdfで出力するシステムを作っております。
htmlで作成した文書をpdfとして出力するために、
googleのwkhtmltopdfというツールを使用しております。
また、wkhtmltopdfを使用する際はphpから以下のラッパークラスを用いて呼び出しております。
mikehaertl/phpwkhtmltopdf
これらを用いてpdfを出力したところ、以下のようにアルファベットだけ文字化けしました。
こちらの文字化けを解消するにはどうしたらよろしいでしょうか。
教えていただければ幸いです。
↑ pdfというアルファベットが文字化けしている。
環境
CentOS release 6.8
php 5.6.23
wkhtmltopdf 0.12.4
mikehaertl/phpwkhtmltopdf 2.2.1
実際に行った手順
- wkhtmltopdfの導入
bash
1$ yum install -y libXrender libXext 2$ cd /usr/local/bin 3$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 4$ xz -dv wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 5$ tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar
- 日本語フォントのインストール
bash
1$ wget http://dl.ipafont.ipa.go.jp/IPAexfont/IPAexfont00301.zip 2$ unzip IPAexfont00301.zip 3$ mv IPAexfont00301 /usr/share/fonts
- pdf化するスクリプトを作成
php
1require './vendor/autoload.php'; 2 3$html = <<<EOF 4<!DOCTYPE html> 5<html> 6 <style> 7 body { 8 padding: 7px; 9 background-color: black; 10 } 11 .red { 12 color: red; 13 font-size: 50px; 14 } 15 .opacity { 16 opacity: 0.3; 17 } 18 </style> 19 20 <body> 21 <div class="red"> 22 <p>PDF化してください!</p> 23 <p class="opacity">何でもしますから!</p> 24 </div> 25 </body> 26</html> 27EOF; 28 29use mikehaertl\wkhtmlto\Pdf; 30 31 32$pdf = new Pdf([ 33 34 // バイナリの位置とエンコード形式 35 'binary' => '/usr/local/bin/wkhtmltox/bin/wkhtmltopdf', 36 'encoding' => 'utf-8', 37 38 // 以下の指定があるとPDFをページ端まで利用できる 39 'margin-top' => 0, 40 'margin-right' => 0, 41 'margin-bottom' => 0, 42 'margin-left' => 0, 43 'no-outline', 44 45]); 46 47// ページを追加 48$pdf->addPage($html); 49 50// ブラウザにPDFを表示 51$pdf->send();