mPDFを使用するメモ

      2018/05/18

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