今までTCPDTやmPDFを使ってたのですがHTML5 + CSS3のWebページを丸ごとPDF化する必要がありレイアウトのズレが実装できるレベルじゃなかったのでwkhtmltopdf Snappyを調べました。
環境
Windows10
XAMPP
PHP7.3
require "knp-snappy/vendor/autoload.php"; use Knp\Snappy\Pdf; $snappy = new Pdf('"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"'); // $snappy->setBinary('"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"') $html = <<<EOF <style></style> <p>ここにHTMLを書く</p> EOF; // PDFをブラウザに出力 //header("Content-Type: application/pdf"); //echo $snappy->getOutputFromHtml($html); // 保存 $snappy->generateFromHtml($html, 'download.pdf');
はまった点
setBinaryなどでバイナリのパスを渡すときはコマンド扱いになるのでダブルクォーテーションで囲むのを忘れていてはまりました。