How to get Blade template view as a raw HTML string?
You can call render()
on the view
.
$html = view('users.edit', compact('user'))->render();
See the View
source code for more information.
<!-- View stored in resources/views/greeting.blade.php --> <html> <body> <h1>Hello, {{ $name }}</h1> </body> </html><!-- In your php controller --> return view('greeting', ['name' => 'James']);
edited
<!-- In your PHP controller You can add html variable , and then use it for example to print PDF -->$html=view('greeting', ['name' => 'James']); $pdf = \App::make('snappy.pdf.wrapper'); $output = $pdf->loadHTML($html)->output();$headers = [ 'Content-Type' => 'application/pdf', 'Content-Disposition' => 'inline; filename="' . $filename . '"', ]; \Storage::put("pdfs/$filename", $output);return response()->download(storage_path("app\\pdfs\\$filename"), $filename . '.pdf', $headers);<!-- or return \Response::make($output, 200, $headers); -->
to use snappy you need to follow the instructions :https://github.com/barryvdh/laravel-snappy
1. Download wkhtmltopdf from here https://wkhtmltopdf.org/downloads.html
2. Package Installation: composer require barryvdh/laravel-snappy
3. In (app.php) providers array add Barryvdh\Snappy\ServiceProvider::class,
4. In (app.php) aliases array add 'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class, 'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,
5. Run php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider"
6. In (snappy.php) edit the binary path based on your installation path for wkhtmltopdf For me it is the following :
return array(
'pdf' => array( 'enabled' => true, // base_path('vendor\wemersonjanuario\wkhtmltopdf-windows\bin\64bit\wkhtmltopdf'), 'binary' =>'"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf"', 'timeout' => false, 'options' => array(), 'env' => array(),),'image' => array( 'enabled' => true, 'binary' =>'"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf"', 'timeout' => false, 'options' => array(), 'env' => array(), ),
);