以前HTMLから簡単にPDFを生成するツールWkhtmltopdfを紹介しました。
今回はPHPからwkhtmltopdfを簡単に実行させるライブラリを2つ紹介します。
※事前に日本語フォントのインストールとWkhtmltopdfがインストールされていることが前提です。
Snappy
インストール
インストールはcomposerで行います。
1 | $ composer require knplabs /knp-snappy |
コード
今回は指定のサイトをPDF化して、ブラウザに表示するプログラムを紹介します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | require 'vendor/autoload.php' ; use Knp\Snappy\Pdf; // wkhtmltopdfをインストールしている位置をコンストラクタに渡す $pdf = new Pdf( '/usr/local/bin/wkhtmltopdf' ); // エンコーディングをUTF-8にする $pdf->setOption( 'encoding' , 'utf-8' ); // PDF化したいサイトのURL $url = 'PDF化したいURL' ; // PDFをブラウザに出力 header( "Content-Type: application/pdf" ); echo $pdf->getOutput($url); |
phpファイルにアクセスするとPDFがブラウザに表示されます。
PHP WkHtmlToPdf
インストール
コマンドラインで以下のコマンドを実行してください。
1 | $ composer require mikehaertl /phpwkhtmltopdf |
コード
今回は指定のサイトをPDF化して、ブラウザに表示するプログラムを紹介します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php //オートロードをインクルード include_once 'vendor/autoload.php' ; use mikehaertl\wkhtmlto\Pdf; $pdf = new Pdf([ // wkhtmltopdfをインストールしている位置を指定 'binary' => '/usr/local/bin/wkhtmltopdf' , // エンコード形式 'encoding' => 'utf-8' , // 生成されるPDFの余白を指定 // 上の余白 'margin-top' => 10, // 右の余白 'margin-right' => 10, // 下の余白 'margin-bottom' => 10, // 左の余白 'margin-left' => 10, 'no-outline' , ]); // ページを追加 $url = 'PDF化したいURL' ; $pdf ->addPage( $url ); // ブラウザにPDFを表示 $pdf ->send(); |
phpファイルにアクセスするとPDFがブラウザに表示されます。
コメント