HTML2PDF、HTML2IMG
采用wkhtmltopdf + Laravel-snappy方案
下载
官网:https://wkhtmltopdf.org/ deb安装:dpkg -i wkhtmltox_0.12.5-1.xenial_amd64.deb rpm安装:rpm -ivh wkhtmltox_0.12.5-1.xenial_amd64.rpm
安装snappy包
composer require barryvdh/laravel-snappy
将 ServiceProvider 添加到 config /app.php 中的 providers 数组 Barryvdh\Snappy\ServiceProvider::class,
添加 facade 到 config /app.php 中的 aliases 数组中 ‘HTML2PDF’ => Barryvdh\Snappy\Facades\SnappyPdf::class, ‘HTML2IMG’ => Barryvdh\Snappy\Facades\SnappyImage::class,
生成配置文件 php artisan vendor:publish –provider=“Barryvdh\Snappy\ServiceProvider”
使用
// html文件渲染页面
$pdf = \PDF::loadView('welcome', $data);
// html字符串渲染页面
$html = '<html><head><meta charset="utf-8"></head><h1>订单id</h1><h2>12346546</h2></html>';
$pdf = \PDF::loadHTML($html);
// 保存文件
$pdf->save('path.pdf');
// 下载文件
return $pdf->download('welcome.pdf');
补充
中文字体:
将ttc字体文件上传至/usr/share/fonts
js不生效:
wkhtmltopdf 不支持 ecs6,let需要改成var
PDF 分页问题:
使用 css 的 page-break-after:always; 或 page-break-inside:aovid;