PHP
tFPDF

tFPDFでjapanese.phpを利用する

はじめに

FPDFで日本語でPDF出力を行おうとして,ググると大体出てくる japanese.php を利用する方法。

FPDF公式ページに日本語対応パッチへのリンクが消えているため,今それを利用する方法をまとめる。

今までは各言語ごとに対応パッチを配布していたのだが,公式がUTF-8に対応したライブラリtFPDFを配布することになり,各言語へのパッチはリンクが消えている模様。

tFPDFのダウンロード

まずはtPDFのダウンロードを行う。

FPDF公式ページの,

スクリーンショット 2018-08-08 16.40.33.png

このリンクを飛んだ先の

スクリーンショット 2018-08-08 16.44.03.png

一番下のZIPダウンロードから。

ダウンロードしたらディレクトリ名を「tfpdf」へと書き換えて好きな場所へと配置する。
(僕はプロジェクト内に lib ディレクトリ作ってその下に置いた)

直リンク

フォーラムの中には残ってるらしいので直接飛ぶ

japanese.zip をクリックし,ダウンロードを行う。

中に入っているのは

  • japanese.php (本体)
  • ex.php (サンプル)

の2つなので japanese.php を tFPDFの中に入れる。

japanese.php の変更

そのままだと,FPDFを利用する形になっているので,tFPDFを利用するように書き換える必要がある。

2行目と15行目の, fpdfFPDF を,それぞれ tfpdftFPDF へ書き換える

japanese.php
- 2: require('fpdf.php');
+ 2: require('tfpdf.php');

- 15: class PDF_Japanese extends FPDF
+ 15: class PDF_Japanese extends tFPDF

以上で準備が完了。

利用法

japanese.php はShift-JISしか対応していない?ため, mb_convert_encoding を使ってShift-JISへと変換する必要がある。

<?php
require('./lib/tfpdf/japanese.php'); // ←自分の環境に応じて書き換えを

$pdf = new PDF_Japanese();
$pdf->AddSJISFont();
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont('SJIS','',18);
$pdf->Write(8, mb_convert_encoding('FPDFの日本語対応サンプルです', 'SJIS'));
$pdf->Output();