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 番目のパラメーターでモードを指定できます。さまざまなモードは、D
、I
、F
、および 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
変数をテーブルの本体と連結する演算子。テーブルヘッダーID
、Name
、および 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 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