NARUMASA CREATIVE DESIGN
Copyright © narumasa.com
All rights reserved.
12
3月
2019

【PHP】PHPからPDFをクリックで書き出す方法(mPDFライブラリ使用)

たまに見積書や請求書を発行できるフォームなどで、クリックするとそのままPDFになるものがあります。

いろいろと細かいことをやるとそれなりに大変なのですが、PHPのライブラリ(mPDF)を使用することで、ある程度簡単に作ることができます。

このページのアクセスが結構あるようなので、超ノーマルなサンプルを作成しました。

今回はPHPライブラリ:mPDFを使用しています。

まずはmPDFをダウンロード
http://www.mpdf1.com/mpdf/index.php?page=Download

ダンロードしたら日本語フォントを使えるようにライブラリを変更していきます。今回は一応商用可と記載されているIPAのフォントを使う方法を記載しておきます。TrueTypeのフォントをダウンロードして下さい。使用する際は、IPAのサイトをよく確認してから使って下さい。

→IPAフォントダウンロード

フォントをダウンロードしたら、【config_fonts.php】を変更してきます。

//85行目あたりに下記があります
$this->fontdata = array(
  //上記の最後に下記を入力
  "ipa" => array(       /* Only Japanese */
    'R' => "ipagp.ttf",
  ),

続いて、【config_lang2fonts.php】を変更していきます。

//337行目あたりに下記があります
/* East Asian */
//上記の最後に下記を入力
CASE "ja":  CASE "jpn":	// Japanese
if ($adobeCJK) { $unifont = "ipa,sjis,sjisB"; }
else { $unifont = "ipa"; }
break;

これで基本設定はOKです。
後はフロント側の設定をしていきます。
フロント側の設定は使用する日本語フォントを設定することと、mPDFを使用してPDFを書き出しますよ、という設定です。

<?php
//mPDFを読み込む
require_once('lib/mpdf.php');
//日本語フォントのIPAを使用することを宣言
$mpdf = new mPDF('ja','A4','8',"ipa");
//外部スタイルシートを使用する場合は下記の設定
$stylesheet = file_get_contents("mphp.css");

$mpdf->WriteHTML($stylesheet,1);

$mpdf->WriteHTML($html);

$mpdf->Output();
?>

スタイルシートの設定は

html, body{
font-family: ipa;
}

フォントを指定しないと文字化けしました。

こんな感じです。Googleで調べるともっと細かく記載されているのもありますが、環境によっては違いがありますので、いろいろと調べて試してみたほうがいいと思います。

レスポンシブにした時にjQueryでメニューをたたむタイプの簡単な作り方
【WordPress】WP以外のページからニュースなどを呼び出す方法