Laravel Snappy PDF 用來產生PDF與圖片的外掛套件

Laravel Snappy PDF是用來將網頁HTML轉換成PDF或者圖片下載的外掛工具,可以用在需要讓使用者下載的表單中需要帶入使用者的姓名或者其他動態資料的狀況,因此就不能將PDF做成單純的檔案下載,而是將HTML樣板製作完畢,然後下載前才將使用者資料帶入HTML之後轉換成PDF讓使用者下載

外掛github :https://github.com/barryvdh/laravel-snappy

laravel pdf snappy

如果你還沒有看過Larvel請參考之前的文章 :

Laravel ,用Laravel 來建立你的第一個網站

 

 

第一步 :安裝 wkhtmltopdf

參考網頁 :https://github.com/KnpLabs/snappy#wkhtmltopdf-binary-as-composer-dependencies

最簡單的安裝方式是透過Composer安裝

可以依照自己的需求選擇安裝x86或者x64的版本,也可選擇只裝轉換PDF的套件或者圖片的套件

 

第二步 :將wkhtmltopdf binary檔案放到適當的位置

我是將binary放到 MyProject/vendor/vendor/wkhtmltopdf 底下

可以根據不同的作業系統建立不同的資料夾來存放,因為不同作業系統的binary檔是不同的,比如說

Linux : MyProject/vendor/vendor/wkhtmltopdf/linux-64/bin/wkhtmltopdf
windows : MyProject/vendor/vendor/wkhtmltopdf/win-32/bin/wkhtmltopdf.exe (還有wkhtmltox.dll)

 

第三步 :讓這個檔案具有執行權限

在linux上

windows上就對檔案按右鍵>內容>將執行權限打勾即可

 

第四步 :安裝snappy 套件

一樣透過Composer 就可以了

 

第五步 :設定Laravel 的config/app.php檔案

將service provider以及alias加進來

 

第六步 :publish config

 

第七步 :編輯snappy config檔

這邊會分兩個部分,一個是pdf一個是image,分別代表處理pdf以及圖片的兩個binary檔,範例中我將binary => 指定到第二步驟所設定的位置

其中因應專案可能跑在不同的位置上所以作業系統的資料夾就用.env中的參數來帶入

 

第八步 :開心使用

範例中直接講 pdf.invoice 這個view帶入$data變數,然後直接產生invoice.pdf提供下載

其中$data就是要顯示在pdf.invoice 中的變數

 

首頁 » 技術文章 » Laravel » Snappy PDF 用來產生PDF與圖片的外掛套件