CakePHP環境でTCPDF 【CakePHP4】

TCPDFとは?

PHPでPDFを生成するためのライブラリです。

HTMLとCSSを用いてデザインを作り、それをPDFとして書き出すことができます。
※ただし、利用できるHTMLタグ・CSSプロパティにはかなり制限があります。こちらの外部サイト様をご参照ください。

GitHubで一般公開されており、現時点(2023/11/18現在)では定期的な更新も行われているようです。

使用方法を紹介する記事は検索すればたくさん出てくるのですが、CakePHP4環境のものが見つからなかったので、今回紹介記事を作成しました。

インストール

Composerを使ってインストールします。

サーバにSSHアクセスして、CakePHPのルートディレクトリまでcdコマンドで移動。

その後、以下のコマンドを叩きます。

composer require tecnickcom/tcpdf

これでTCPDFがインストールされます。

PDF生成

Controller上でTCPDFを稼働させて、実際にPDFを表示してみましょう。

//src/Controller/SamplesController.php
<?php
・・・省略
namespace App\Controller;
・・・省略
use TCPDF;

class samplesController extends AppController{

  public function pdf()
  {
       $this->autoRender = false;
       $pdf = new TCPDF();

       // PDFの基本設定(メタデータ)
       $pdf->SetCreator(PDF_CREATOR);
       $pdf->SetAuthor('制作者名');
       $pdf->SetTitle('タイトル');
       $pdf->SetSubject('主題');
       $pdf->SetKeywords('複数, キーワード, 指定可能');

       $pdf->AddPage();
      
       //フォント指定
       $pdf->SetFont("kozgopromedium", "", 10);

       $html = <<< EOF
       <style>
       h1 {text-align:center;margin-bottom:30px}
       p {text-align:center;}
       </style>
       <h1>タイトル</h1>
       <p>テキストテキストテキストテキストテキストテキストテキストテキスト</p>
       EOF;

       $pdf->writeHTML($html);
       $pdf->Output('sample.pdf', 'I');
  }
}

これで「CakePHPのルートURL/samples/pdf」をブラウザで表示すると、生成されたpdfが確認できます。

参考

・GitHub:tecnickcom/TCPDF

・あるWEBプログラマの修行日記 Ver2:TCPDFでサポートされているHTMLタグ、CSSプロパティ

コメント

タイトルとURLをコピーしました