PHP

mPDFを使用するメモ

mPDFを使用した際の使い方とか設定とかの覚書

公式サイト https://mpdf.github.io/

参考 mPDFライブラリでPDFファイルを作成する

ファイルを出力

参考サイトを見ながらテストの表示をしてみる。

// ライブラリの読み込み
require_once 'mpdf60/mpdf.php';
// mPDFクラス作成
$mpdf = new mPDF();
// タイトルを指定
$mpdf->setTitle("MyPDF.pdf");
// テキストを設定
$mpdf->WriteHTML("Test");
// 出力
$mpdf->Output();

これでうまく表示されていればOK。

日本語が扱えるように設定する

$mpdf = new mPDF();

の部分を

$mpdf = new mPDF("ja");

に変更する。

IPAフォントをダウンロードする

https://ipafont.ipa.go.jp/old/ipafont/download.html
ダウンロードした日本語フォント(TTFファイル)をttfontsフォルダに入れる

config_fonts.phpの修正

$this->fontdata = array(

の中あたりに

"ipa" => array(   /* Japan */
'R' => "ipagp.ttf"
),

を追加。

config_lang2fonts.phpの修正

	CASE "ja":  CASE "jpn":	// Japanese HIRAGANA KATAKANA
		if ($adobeCJK) { $unifont = "sjis"; }
		else { $unifont = "sun-exta"; }
		break;

	CASE "ja":  CASE "jpn":	// Japanese HIRAGANA KATAKANA
		if ($adobeCJK) { $unifont = "ipa,sjis"; }
		else { $unifont = "ipa"; }
		break;

に修正する。

他各種設定

examplesフォルダ内にデモファイルがあるので、画像の挿入方法だったり、テーブルの作り方だったり、CSSでの装飾だったりPHPコードを途中でいれたりする方法とかは各デモを見ながら確認する。

pagebreakでPDFの改ページ

<pagebreak />

外部スタイルシートの設定

//外部スタイルシートを使用する場合は下記の設定
$stylesheet = file_get_contents("http://example.com/stylesheet.css" );
$stylesheet = mb_convert_encoding($stylesheet, "UTF-8");
$mpdf->WriteHTML($stylesheet,1);

ページフッタ設定

//ページフッタ設定
$footer = '<div align="center">See <a href="http://mpdf1.com/manual/index.php">documentation manual</a></div>';
$mpdf->SetHTMLFooter($footer);

出力

//ウェブページに出力する場合
$mpdf->Output();
//サーバーに保存する場合
$mpdf->Output("hoge.pdf", 'F');

Fatal error: Interface 'Psr\Log\LoggerAwareInterface' not found

古いバージョン(mpdf 6 version)のセットアップの仕方をしているとこのエラーになる。
バージョン7の使い方は下記ページ参照
https://mpdf.github.io/installation-setup/installation-v7-x.html

  • この記事を書いた人

ゆず

忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
一杯おごる

-PHP
-