2016-07-22 44 views
0

我正在開發產品管理系統,並且有一個稱爲購買的模塊。如何在laravel中提交表單時生成pdf 5.2

我也寫過store()方法的控制器和模型部分。

現在我想在點擊提交按鈕時生成發票。我使用PDF生成器插件作爲barryvdh/laravel-dompdf。我是PHP & Laravel的新手,只想知道執行PDF生成過程的指令。

+0

有文件中的一切,你只需要按照它https://github.com/barryvdh/laravel-dompdf –

回答

0

您可以按照安裝步驟Laravel 5:

  1. 此,Barryvdh\DomPDF\ServiceProvider::class,config/app.php文件添加爲的ServiceProvider
  2. config/app.php文件此,'PDF' => Barryvdh\DomPDF\Facade::class,添加到您的外牆

然後在您的商店方法中,保存所有信息後,您可以生成如下所示的PDF:

$pdf = \PDF::loadView('pdf.invoice', $data); 
return $pdf->download('invoice.pdf'); 

這將加載存儲在resources/views/pdf與存儲在$data的值invoice視圖,然後返回一個叫做invoice.pdf一個可下載的文件。

這一切都直接來自使用部分的DomPDF docs

+0

我明白你所說的,但我與這$數據混淆。你能告訴我如何表明這一點。我不知道應該把$ data放在哪裏,就像$ data = array('test'=> $ request-> get('test_name'),........ ......... );然後「你給的代碼」 –

+0

@sandunijayawardena你使用它類似於你如何使用'郵件',如果你曾經使用過。 '$ data'是一個包含您傳入並可以使用的鍵和值的數組。例如'$ data ['name'] =「name」;'可以讓你在視圖內使用'$ name'。 – James

0

根據本Github Link

2-窗體頁

<form id="FOO" method="POST" action="/pdf"> 

    <input type="text" name="object" > 
    <button type="submit">Generate</button> 

</form> 

3-路由安裝DOMPDF:Route::post('pdf' , '[email protected]');

請注意,在這裏,你將需要包含一個隱藏的輸入,使用csrf令牌,或者只需在中排除此路由中間件,否則它不會讓你發佈(如果你還沒有驗證工作呢,不介意這個通知)

4-控制器現在

public function PDFGenerator (Request $request){ 
    $html = <<<ENDHTML 

    <!DOCTYPE html> 
    <html> 
    <head> 
     <title>Foo</title> 
     <meta charset="utf-8"> 
    </head> 
    <body style="margin: 30px;"> 

     <center style="text-decoration: underline;">{$request->object}</center> 

    </body> 
    </html> 
ENDHTML; 
    $dompdf = App::make('dompdf.wrapper'); 
    $dompdf->loadHTML($html); 
    $dompdf->stream("hello.pdf"); 
    return $dompdf->stream(); 

} 

This is the Heredoc documentation頁面萬一你需要更多關於如何使用它的信息。

不要忘記將庫包含在控制器中,等待您的反饋。