PHP で PDF を作成する

Subodh Poudel 2023年1月30日
  1. PHP で mpdf ライブラリを使用して PDF を作成する
  2. PHP で dompdf ライブラリを使用して PDF を作成する
PHP で PDF を作成する

この記事では、PHP で PDF を作成する方法を紹介します。データベースからデータを取得し、PDF に入れて、ダウンロードします。

PHP で mpdf ライブラリを使用して PDF を作成する

外部ライブラリ mpdf を使用して、PHP で PDF を作成できます。データベースからデータを取得し、PDF に保存して、PDF をダウンロードできます。このライブラリを使用して、HTML ドキュメントから PDF を作成できます。HTML ドキュメントは UTF-8 でエンコードする必要があります。PDF に追加するデータをデータベースから HTML 形式で取得できます。ライブラリを使用するには、プロジェクトディレクトリからコマンド composer require mpdf/mpd でダウンロードできます。このコマンドは、プロジェクトディレクトリに mpdf ライブラリをインストールします。vendor ファイルが作成されます。require() 関数を使用して、vendor フォルダー内にあるファイル autoload.php を含める必要があります。ライブラリがインストールされているディレクトリに書き込み権限があることを確認する必要があります。

Mpdf() コンストラクターからオブジェクトを作成し、WriteHTML()output() などのメソッドを使用して PDF を作成します。PDF を出力できるモードはいくつかあります。output() メソッドの 2 番目のパラメーターでモードを指定できます。さまざまなモードは、DIF、および S オプションで表されます。オプション D は、スクリプトの実行後に PDF を強制的にダウンロードします。オプション I は、スクリプトの実行後にブラウザに PDF を表示します。一方、オプション F は、PHP ファイルに関連するフォルダに保存された PDF をダウンロードします。最後に、オプション F は、output() メソッドが変数に割り当てられている場合にのみ、ブラウザに pdf を出力します。

たとえば、Persons という名前のテーブルを含む phprow という名前のデータベースがあります。テーブル Persons には、次のデータが含まれています。

+----------+----------+-----------+
| PersonID | Name     | Address   |
+----------+----------+-----------+
| 22       | Harry M  | England   |
| 32       | Paul P   | France    | 
+----------+----------+-----------+

まず、require() 関数を使用して、vender/autoload.php ファイルを含めます。次に、データベース接続を作成して確立し、SQL クエリを実行してデータベースからデータを選択し、$html 変数にテーブルを作成します。使用 “。” $html 変数をテーブルの本体と連結する演算子。テーブルヘッダーIDName、および Address を使用してテーブルを作成します。次に、Persons テーブルから上記のデータを取得して、テーブルにデータを入力します。

サンプルコード:

require('vendor/autoload.php');
$con=mysqli_connect('localhost','root','','phprow');
$res=mysqli_query($con,"select * from Persons");
if(mysqli_num_rows($res)>0){
    $html='<table>';
    $html.='<tr><td>ID</td><td>Name</td><td>Address</td>';
    while($row=mysqli_fetch_assoc($res)){
        $html.='<tr><td>'.$row['PersonID'].'</td><td>'.$row['Name'].'</td><td>'.$row['Address'].'</td></tr>';
    }
    $html.='</table>';
}

上記の例では、データベースのデータを含むテーブルを変数 $html に格納しています。. を使用しましたすべてのテーブル要素を連結する演算子。このようにして、PDF に書き込む準備ができた HTML ドキュメントを作成しました。

次に、$mpdf という名前の変数を作成します。new キーワードを使用して、Mpdf() コンストラクターのオブジェクトを変数に割り当てます。オブジェクトのパラメーターとして $html 変数を使用して WriteHTML() 関数を呼び出します。次に、別の変数 $file を作成して、PDF を保存します。files/time() 関数で結合し、再び .pdf と連結してファイル名を作成します。$file 変数に保存します。最後に、$file を最初のパラメーターとして、オプション I を 2 番目のパラメーターとして、output() 関数を呼び出します。

したがって、データベースからデータを取得し、それらのデータを使用して PDF を作成しました。以下の例では、files フォルダー内に .pdf 拡張子を持つ現在の時刻の名前のファイルを作成します。スクリプトの実行後、PDF がブラウザに表示されます。PDF はブラウザからダウンロードできます。

サンプルコード:

$mpdf=new \Mpdf\Mpdf();
$mpdf->WriteHTML($html);
$file='files/'.time().'.pdf';
$mpdf->output($file,'I');

PHP で dompdf ライブラリを使用して PDF を作成する

dompdf ライブラリは、PHP で PDF を作成およびダウンロードするためのオプションでもあります。HTML を PDF にロードできます。このライブラリは、mpdf ライブラリと非常によく似ています。方法だけが異なります。loadHtml()render()stream() などのメソッドを使用します。コマンド composer require dompdf/dompdf を使用して、ライブラリを作業ディレクトリにダウンロードする必要があります。最初の方法と同様に、composer.json ファイルと composer.lock ファイルとともに vendor フォルダーが作成されます。

たとえば、プログラムのコードの最初の行として vendor/autoload.php が必要です。次に、use キーワードを記述して、Dompdf クラスを use Dompdf/Dompdf としてインポートします。上記の方法と同じ HTML テーブルを使用して PDF をロードできます。

require 'vendor/autoload.php';
use Dompdf\Dompdf;

HTML を変数 $html に格納した後、別の変数 $dompdf を作成して、クラス Dompdf のオブジェクトを作成します。次に、パラメータとして $html を指定して loadHtml() メソッドを呼び出します。次に、$dompdf オブジェクトを使用して render() 関数を呼び出し、次に stream() 関数を呼び出します。

以下の例では、最初の方法と同様に、テーブルを使用して PDF を作成します。render() メソッドは HTML を PDF ファイルとしてレンダリングし、stream() メソッドはレンダリングされた HTML をブラウザーに出力します。したがって、PHP の dompdf ライブラリを使用して PDF を作成できます。

サンプルコード:

$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->render();
$dompdf->stream();
著者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

関連記事 - PHP PDF