91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Laravel使用laravel-snappy包實現HTML轉PDF和PNG的方法

發布時間:2020-12-10 10:20:37 來源:億速云 閱讀:744 作者:小新 欄目:編程語言

這篇文章主要介紹了Laravel使用laravel-snappy包實現HTML轉PDF和PNG的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

前言

由于公司要開發一個新的工具叫做云合同,可以預設好幾套固定的合同模板(html頁面),使用參數填充方式將合同內的數據靈活變化,然后生成 PDF 和 PNG
查閱一番我們發現了 laravel-snappy 這個包,底層使用的是 wkhtmltopdfwkhtmltopdf 是構建于 QT Webkit 之上,而 QT Webkit 又是基于 Webkit 的,跟我們的瀏覽器一樣的渲染引擎。

安裝

1、先查看系統是 32 位的還是 64 位的

uname -a

2、通過 composer 安裝 wkhtmltopdf

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

3、接下來將安裝好的 wkhtmltopdf 復制到 Linux 系統可執行命令的目錄中

cp vendor/h5cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64 /usr/local/bin/
cp vendor/h5cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/
//并使其可執行:
chmod +x /usr/local/bin/wkhtmltoimage-amd64 
chmod +x /usr/local/bin/wkhtmltopdf-amd64

4、安裝 laravel-snappy 包

composer require barryvdh/laravel-snappy

配置

1、將 ServiceProvider 添加到 config/app.php 中的 providers 數組中

Barryvdh\Snappy\ServiceProvider::class,

2、將 Facades 添加到 config/app.php 中的 aliases 數組中

'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,

3、生成配置文件

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

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

使用

PDF

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

//二、渲染頁面,在瀏覽器中顯示
$html = '<html><head><meta charset="utf-8"></head><h2>訂單id</h2><h3>12346546</h3></html>';
$pdf = \PDF::loadHTML($html);
return $pdf->inline();

Image

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

//二、渲染頁面,在瀏覽器中顯示
$html = '<html><head><meta charset="utf-8"></head><h2>訂單id</h2><h3>12346546</h3></html>';
$img = \SnappyImage::loadHTML($html);
return $img->inline();

踩坑記錄

一、當執行生成時若提示 libXrenderlibssl 庫不存在需要安裝相對應庫

//apt-get 安裝方法
apt-get install libXrender*
apt-get install libssl*

//yum 安裝方法
yum install libXrender*
yum install libssl*

//若 yum 安裝時最后報錯 Error: GPG check FAILED
yum install libXrender* --nogpgcheck
yum install libssl* --nogpgcheck

二、中文顯示亂碼問題,這個問題需要在 Linux 中安裝中文字體即可解決

查看系統字體
在開始安裝之前,我們先查看系統中已經安裝的字體,要查看系統中已經安裝的字體,我們可以使用 fc-list 命令進行查看,如果系統中沒有該命令的話,我們需要先安裝相關的軟件包。
在 centos 上,使用如下命令進行安裝:

yum install -y fontconfig mkfontscale

安裝完畢后,我們可以來查看系統中已經安裝的字體

[root@8d079be5059a php]# fc-list
/usr/share/fonts/urw-base35/NimbusMonoPS-Italic.otf: Nimbus Mono PS:style=Italic
/usr/share/fonts/urw-base35/D050000L.t1: D050000L:style=Regular
...

如果要查看系統中已經安裝的中文字體,我們可以使用如下命令

[root@8d079be5059a php]# fc-list :lang=zh

通過上圖我們可以看到系統中是沒有中文字體的

我們進入 Windows 的 字體目錄

C:\Windows\Fonts

將 simfang.ttf 字體遠程復制或者以其他方式放到服務器的字體目錄中

//遠程復制
scp simfang.ttf root@ip:/usr/share/fonts

然后建立字體索引信息,更新字體緩存

cd /usr/share/fonts/mkfontscale
mkfontdir
fc-cache

至此,字體已經安裝完畢。現在我們再來查看中文字體,是否安裝成功

[root@8d079be5059a php]# fc-list :lang=zh
/usr/share/fonts/simfang.ttf: FangSong,仿宋:style=Regular,Normal,oby?ejné,Standard,Κανονικ?,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta

感謝你能夠認真閱讀完這篇文章,希望小編分享Laravel使用laravel-snappy包實現HTML轉PDF和PNG的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保康县| 鄂温| 衢州市| 松阳县| 鄂托克前旗| 酒泉市| 留坝县| 鹤壁市| 图木舒克市| 贵州省| 永康市| 仁化县| 镇巴县| 民和| 曲松县| 东至县| 从江县| 乌兰浩特市| 八宿县| 静宁县| 普兰县| 怀化市| 独山县| 富源县| 常宁市| 湘潭县| 满洲里市| 同江市| 定兴县| 神木县| 合江县| 咸宁市| 大石桥市| 晋城| 德保县| 宜兴市| 思南县| 葫芦岛市| 南部县| 新宾| 盐源县|