Credit : This article is copied from http://itsolutionstuff.com/
Step 1: Installation
In first step we have to download laravel-dompdf plugin for generate pdf file from view blade file. So first run bellow command in your terminal:
composer require barryvdh/laravel-dompdf
Now open config/app.php file and add service provider and aliase.
'providers' => [....Barryvdh\DomPDF\ServiceProvider::class,],'aliases' => [....'PDF' => Barryvdh\DomPDF\Facade::class,],
Step 2: Add Route
In this is step we need to add route for generate view. so open your app/Http/routes.php file and add following route.
Route::get('pdfview',array('as'=>'pdfview','uses'=>'ItemController@pdfview'));
Step 3: Create Controller
Ok, now we should create new controller as ItemController in this path app/Http/Controllers/ItemController.php. Make sure you should have items table with some data. this controller will manage data and genarate pdf file, so put bellow content in controller file:
app/Http/Controllers/ItemController.php
namespace App\Http\Controllers;use App\Http\Requests;use Illuminate\Http\Request;use DB;use PDF;class ItemController extends Controller{/*** Show the application dashboard.** @return \Illuminate\Http\Response*/public function pdfview(Request $request){$items = DB::table("items")->get();view()->share('items',$items);if($request->has('download')){$pdf = PDF::loadView('pdfview');return $pdf->download('pdfview.pdf');}return view('pdfview');}}
Step 4: Create View File
In last step, we have to create view file "pdfview.blade.php" for generate view and also pdf file, so create pdfview file and put bellow code:
resources/view/pdfview.blade.php
<style type="text/css">table td, table th{border:1px solid black;}</style><div class="container"><br/><a href="{{ route('pdfview',['download'=>'pdf']) }}">Download PDF</a><table><tr><th>No</th><th>Title</th><th>Description</th></tr>@foreach ($items as $key => $item)<tr><td>{{ ++$key }}</td><td>{{ $item->title }}</td><td>{{ $item->description }}</td></tr>@endforeach</table></div>
ไม่มีความคิดเห็น:
แสดงความคิดเห็น