mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成する PHP ライブラリです。
これは FPDF および HTML2FPDF (「クレジット」を参照) に基づいており、多くの機能強化が施されています。 mPDF は Ian Back によって作成され、GNU GPL v2 ライセンスに基づいてリリースされています。
mPDF GitHub リポジトリ ホームページまたは Packagist でこのファイルを表示している場合、デフォルトのリポジトリ ブランチはdevelopment
であり、最後の安定したリリースとは異なる可能性があることに注意してください。
PHP >=5.6 <7.3.0
はmPDF >= 7.0
でサポートされます
PHP 7.3
mPDF v7.1.7
以降サポートされています。
PHP 7.4
mPDF v8.0.4
以降サポートされています
PHP 8.0
はmPDF v8.0.10
以降サポートされています
PHP 8.1
はmPDF v8.0.13
以降でサポートされています。
PHP 8.2
はmPDF v8.1.3
以降でサポートされています
PHP 8.3
mPDF v8.2.1
以降でサポートされています
PHP 8.4
mPDF v8.2.5
以降でサポートされています
PHP mbstring
およびgd
拡張機能をロードする必要があります。
出力および埋め込みリソース (フォントなど) を圧縮するためのzlib
、バーコードを生成するためのbcmath
、文字セット変換および SVG 処理のためのxml
など、一部の高度な機能には追加の拡張機能が必要になる場合があります。
mPDF には、 php -S
などのシングル スレッド サーバーで外部 HTTP リソースを取得する際にいくつかの問題があります。 nginx (php-fpm) や Apache などの適切なサーバーを推奨します。
金額を問わず寄付して mPDF の開発をサポートすることを検討してください。寄付ボタンはドキュメントのメインページにあります。
公式のインストール方法は、composer とその packagegist パッケージ mpdf/mpdf を使用します。
$ composer require mpdf/mpdf
このライブラリの最も単純な使用法 (バージョン 7.0 以降) は次のようになります。
<?phprequire_once __DIR__ 。 '/vendor/autoload.php';$mpdf = new MpdfMpdf();$mpdf->WriteHTML('<h1>Hello world!</h1>');$mpdf->Output();
これにより、PDF がapplication/pdf
コンテンツ タイプとしてブラウザーにインラインで出力されます。
すべての構成ディレクティブは、コンストラクターの$config
パラメーターによって設定できます。
tempDir
構成変数を使用して独自の一時ディレクトリを設定することをお勧めします。このディレクトリには、mPDF を使用するユーザー (通常はcli
、 webserver
、 fpm
) の書き込み権限 (モード775
を推奨) が必要です。
警告: mPDF は、一時ディレクトリ内の古い一時ファイルをクリーンアップします。 mPDF 専用のパスを選択してください。
<?php$mpdf = new MpdfMpdf(['tempDir' => __DIR__ . '/tmp']);
デフォルトでは、一時ディレクトリはベンダーディレクトリ内にあり、 post_install
コンポーザースクリプトからの書き込み権限を持ちます。
カスタム一時ディレクトリの詳細については、マニュアルの「インストールとセットアップ」セクションの一時ファイル用フォルダに関する注記を参照してください。
問題が発生した場合は、マニュアルのトラブルシューティングに関するセクションをお読みください。
mPDF は全体としてかなり古いソフトウェアです。現在では、PHP で書かれていないとしても、より優れた代替手段が利用可能です。
PHP 以外のアプローチを使用して PDF ファイルを生成できない場合、またはブラウザーのアプローチよりも mPDF の利点の一部 (カラー処理、プレプリント、バーコードのサポート、ヘッダーとフッター、ページ番号付け、目次など) を活用したい場合は、mPDF を使用します。ただし、mPDF に合わせた HTML/CSS テンプレートが必要になる場合があることに注意してください。
最先端の CSS サポート、既存の HTML ページを PDF にミラーリングしたい場合は、ヘッドレス Chrome を使用してください。
mPDF は、一部の内部機能を強化し、新しいバージョンの PHP をサポートするために引き続き更新されますが、より優れたおよび/または新しい CSS サポートは実装されない可能性が高くなります。
オンラインマニュアルは https://mpdf.github.io/ から入手できます。
一般的な質問やトラブルシューティングについては、ディスカッションを使用してください。
StackOverflow ユーザー ベースがタイムリーに回答してくれる可能性が高いため、Stack Overflow で mpdf タグを使用することもできます。
問題やプル リクエストを送信する前に、CONTRIBUTING.md ファイルをお読みください。
mPDF の単体テストは、PHPUnit を使用して行われます。
開始するには、mPDF ルート ディレクトリでコマンド ラインからcomposer install
実行します (最初に Composer をインストールする必要があります)。
テストを実行するには、mPDF ルート ディレクトリでコマンド ラインからcomposer test
実行します。
mPDF の単体テストの作成にご協力いただければ幸いです。ご協力いただける場合は、 /tests/
ディレクトリにある PHP ファイルは単体テスト時に自動ロードされることに注意してください。