安装 wkhtmltopdf
基于docker php:8.1-fpm
apt-get update && apt-get install -y wkhtmltopdf
composer require h4cc/wkhtmltopdf-amd64 0.12.x
composer require h4cc/wkhtmltoimage-amd64 0.12.x
cp vendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64 /usr/local/bin/
cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/
// 可执行:
chmod +x /usr/local/bin/wkhtmltoimage-amd64
chmod +x /usr/local/bin/wkhtmltopdf-amd64
安装扩展包
composer require barryvdh/laravel-snappy
代码层面
php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider"
# config/app.php中
## providers 数组
Barryvdh\Snappy\ServiceProvider::class
## aliases 数组
'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,
# 根据实际情况修改 config/snappy.php 配置里面的 binary 项
使用
public function test200($params)
{
$url = $params[1];
$html = file_get_contents($url);
$pdf = \PDF::loadHTML($html);
$file_name = storage_path('app/tmp/' . Str::random() . '.pdf');
$pdf->save($file_name);
dd($file_name);
}