以前HTMLから簡単にPDFを生成するツールWkhtmltopdfを紹介しました。
今回はPHPからwkhtmltopdfを簡単に実行させるライブラリを2つ紹介します。
※事前に日本語フォントのインストールとWkhtmltopdfがインストールされていることが前提です。
目次
Snappy
インストール
インストールはcomposerで行います。
$ composer require knplabs/knp-snappy
コード
今回は指定のサイトをPDF化して、ブラウザに表示するプログラムを紹介します。
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
インストール
コマンドラインで以下のコマンドを実行してください。
$ composer require mikehaertl/phpwkhtmltopdf
コード
今回は指定のサイトをPDF化して、ブラウザに表示するプログラムを紹介します。
<?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がブラウザに表示されます。

コメント