laravel下使用 pdf 擴(kuò)展包


larave 下比較知名的PDF擴(kuò)展包有:laravel-snappy , laravel-DOMPDF.都是出自大神 barryvdh 之手.

laravel-snappy 使用的是 wkhtmltopdf 是構(gòu)建于 QT Webkit 也就瀏覽器渲染.
laravel-DOMPD 是根據(jù)流文件處理的.(相比下比較耗內(nèi)存)

安裝

先安裝Wkhtmltopdf

我們通過(guò) composer 來(lái)安裝

32位:
$ composer require h4cc / wkhtmltopdf-i386 0.12.x
$ composer require h4cc / wkhtmltoimage-i386 0.12.x,
64位:
$ composer require h4cc/wkhtmltopdf-amd64 0.12.x
$ composer require h4cc/wkhtmltoimage-amd64 0.12.x

(uname -a 命令查看系統(tǒng)位數(shù))

cp vendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64 /usr/local/bin/
cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/
并使其可執(zhí)行:
chmod +x /usr/local/bin/wkhtmltoimage-amd64 
chmod +x /usr/local/bin/wkhtmltopdf-amd64

接下來(lái)就來(lái)安裝 snappy 包

composer require barryvdh/laravel-snappy

配置

將ServiceProvider添加到config / app.php中的providers數(shù)組中

Barryvdh\Snappy\ServiceProvider::class,
或添加到 Facade 中
'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,

生成配置文件:

php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider"

注意的是:
config 文件夾中的 snappy.php就是其配置文件, binary 指向的就是上面安裝的 wkhtml 相關(guān)路徑.

使用

PDF

一:
下載
$pdf = \PDF::loadView('welcome', $data);
return $pdf->download('welcome.pdf');

二:
渲染頁(yè)面
$html = '<html><head><meta charset="utf-8"></head><h1>訂單id</h1><h2>12346546</h2></html>';
$pdf = \PDF::loadHTML($html);
return $pdf->inline();

Image

一:
下載
$img = \SnappyImage::loadView('welcome', $data);
return $img->download('welcome.png');

二:
渲染頁(yè)面
$html = '<html><head><meta charset="utf-8"></head><h1>訂單id</h1><h2>12346546</h2></html>';
$img = \SnappyImage::loadHTML($html);
return $img->inline();

參考:
中文字體問(wèn)題
詳細(xì)使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容