【PHP】TCPDF-2 TCPDFで日本語に対応する

TCPDFでフォントを利用するには、True Type Font(.ttfファイル)を変換する必要があります。Webサービスで利用するには、著作権問題のクリアが必要です。

フリーフォントの多くは、漢字まで対応しているものが少なく、PDF生成機能を実装する上でなかなか適したフォントがないのが現状です。

IPAexフォント
一般社団法人 文字情報技術促進協議会が提供するIPAexフォントは、オープンソースライセンス(詳細はリンク先参照)でWebサービス上で利用するのにも最適です。

文字情報技術促進協議会 IPAexフォントおよびIPAフォントについてのページはこちら

文字情報技術促進協議会のサイトからzipファイルをダウンロードします。
明朝体の場合 ipaexm00401.zip
ゴシック体の場合 ipaexg00401.zip

TCPDFの設置に関しては以下をご覧ください。
【PHP】TCPDF-1 TCPDFでPDFを作成する

php ./TCPDF-main/tools/tcpdf_addfont.php -i ./ipaexm.ttf
php ./TCPDF-main/tools/tcpdf_addfont.php -i ./ipaexg.ttf

TCPDF-main/fontsディレクトリ内に
ipaexm.ctg.z / ipaexm.php / ipaexm.z (明朝体)
ipaexg.ctg.z / ipaexg.php / ipaexg.z (ゴシック体)
が追加されていれば成功です。

では、実際にTCPDF上で使用してみましょう。

サンプル2(sample2.php)

require_once('./tcpdf/tcpdf.php'); // TCPDFを読み込みます。
$pdf = new TCPDF("P", "pt", "A4", true, "UTF-8", false);

$pdf->SetDefaultMonospacedFont('ipagp');
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->setFontSubsetting(false);  

// ページを追加
$pdf->AddPage();

// レイアウト初期設定
$pdf->SetTextColor(0,0,0);
$pdf->SetDrawColor (0, 0, 0);
$pdf->SetLineWidth(0.5);        // 0.8は線の太さ
$pdf->setCellPaddings(3,3,3,3);

// フォントを設定(明朝体)
$pdf->SetFont('ipaexm', '', 20);
// テキスト描画
$pdf->MultiCell(0, 0, 'こんにちは!明朝体です', '0', 'L', false, 1, '', '', true, 0);


// フォントを設定(ゴシック体)
$pdf->SetFont('ipaexg', '', 20);
// テキスト描画
$pdf->MultiCell(0, 0, 'こんにちは!ゴシック体です', '0', 'L', false, 1, '', '', true, 0);

// PDF を出力
$tmpFileName = uniqid() . '.pdf';
$pdf->Output($tmpFileName, 'I');

$pdf->SetFont(‘ipaexm’, ”, 20);
第1引数  フォント名を指定します。

第2引数  フォントスタイルを指定します。
“B” ボールド
“I” イタリック
“U” アンダーライン
“D” 打ち消し線

第3引数  フォントサイズを指定します。
 引数なしの場合は12pt

第4引数
フォントファイルを名前で指定します。基本的に”でよいかと思います。

第5引数
trueを指定した場合 使用した文字のみを埋め込む
falsを指定した場合 フォントを全て埋め込む
‘default’を指定した場合 setFontSubsetting()の設定に従います。


PDFサンプル2(実際にTCPDFで作成したsample2.phpのPDFが表示されます)