今回はtfpdfを利用したpdf出力で、フォントを変更する方法を備忘録としてメモします。
※php8.0.25で動作確認。
tfpdfのダウンロード
http://www.fpdf.orgへアクセスして、HomeタブのWhat languages can I use?から、UTF-8 supportのリンクをクリックします。
すると、tfpdfの使用例とともにzipファイルのダウンロードリンクがあるので、そちらからダウンロードします。
Descriptionにも記載されていますが、従来のFPDFにUTF-8サポートを追加したクラスのようです。
日本語でpdfを出力しようとしているなら問題ないと思いますが、mbstringが有効である必要があることに注意が必要です。
(mbstringはphp.iniファイルで設定が可能です。)
ダウンロードして解凍した中身は以下の通り。
- HelloWorld.txt
- info.html
- README.txt
- tfpdf.php
- ex.html
- ex.php
- font
- 各種フォントファイル.php
- unifont
- 各種フォントファイル.ttf
- ttfonts
デフォルトフォントでOKなら、japanese.phpを使用するだけで大丈夫ですが、文字コードがSJISで扱いづらいので今回は使用しません。このままtfpdf.phpを利用します。
以下、このようなフォルダ構成になっているとします。
/your_path/
├tfpdf.php
├font/
└unifont/
フォントのダウンロード
例として、「rounded-mplus-1c-medium」をダウンロードします。
ダウンロードしたフォントファイルがttfファイルであることを確認して、font/unifont直下へ格納します。
ここでは、rounded-mplus-1c-medium.ttfをfont/unifont直下へ格納しました。
使用方法
<?php
require('/your_path/tfpdf.php');
$pdf=new tFPDF('P','pt','A4');
$pdf->AddFont('Rounded', '', 'rounded-mplus-1c-medium.ttf',true);
$pdf->AddPage();
// 設定
$nowX = 20;
$nowY = 30;
$pdf->SetFont('Rounded', '', 16);
$pdf->SetXY($nowX, $nowY);
$pdf->MultiCell(0, 50,'こんにちは!', 'B', 'L', '');
$pdf->Output();
?>