1. 程式人生 > >barryvdh/laravel-snappy網頁轉圖片、pdf

barryvdh/laravel-snappy網頁轉圖片、pdf

一、下載wkhtmltopdf

下載地址:https://wkhtmltopdf.org/downloads.html
選擇對應的版本下載(我的homestead是ubuntu的16.04.3下載的是Ubuntu 16.04(xenial) amd64)
解壓wkhtmltox_0.12.5-1.xenial_amd64.deb,將其中的usr檔案單獨拿出來放到根目錄

二、安裝barryvdh/laravel-snappy

composer require barryvdh/laravel-snappy

安裝成功後在app.php中的
providers 新增:

Barryvdh\Snappy\ServiceProvider::class,`

facades新增:

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

釋出配置檔案

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

三、使用
controller中引用app

use App;

在具體的方法中

$pdf = App::make('snappy.pdf.wrapper');
return $pdf
    	//->loadHtml('<h1>你好123</h1>')
    	//->loadFile('http://www.kissyou.club/wap/parttime-job/')
    	->loadView('test.index')
    	->setPaper('a4')
    	->setOrientation('landscape')
    	->setOption('margin-bottom', 0)
    	->setOption('enable-forms', true)
    	//->setOption('grayscale', true)
    	//->setOption('debug-javascript', true)
    	//->setOption('page-offset', 8)
    	->setOption('encoding', 'utf-8')
    	//->setOption('header-font-name', 'msyh')
    	//->setOption('enable-external-links', true)
    	->inline();  // $data 為傳遞的引數
    	//return $pdf->inline(); // 顯示

四、會遇到不能識別漢字的時候

下載字型

$ wget http://font.ubuntu.com/download/ubuntu-font-family-0.83.zip

解壓字

$ unzip ubuntu-font-family-0.83.zip

同時將windows下的微軟雅黑、宋體等放進去

複製字型到對應的目錄

$ sudo cp -r ubuntu-font-family-0.83/ /usr/share/fonts/truetype/

加可寫許可權

$ sudo chmod 755 /usr/share/fonts/truetype/ubuntu-font-family-0.83/ -R

重新整理字型庫

fc-cache -f -v

在html頁面中增加字型,不加也行預設宋體

<style>
    body {
        font-family:  msyh;
    }
</style>

參考文件:
https://packagist.org/packages/barryvdh/laravel-snappy
https://github.com/barryvdh/laravel-snappy
https://wkhtmltopdf.org/usage/wkhtmltopdf.txt