Description
Snappy PDF/Image Wrapper for Laravel
You can create a new Snappy PDF/Image instance and load a HTML string, file or view name. You can save it to a file, or inline (show in browser) or download.
Using the App container:
$snappy = App::make('snappy.pdf');//To file$html = '<h1>Bill</h1><p>You owe me money, dude.</p>';$snappy->generateFromHtml($html, '/tmp/bill-123.pdf');$snappy->generate('http://www.github.com', '/tmp/github.pdf');//Or output:return new Response( $snappy->getOutputFromHtml($html), 200, array( 'Content-Type' => 'application/pdf', 'Content-Disposition' => 'attachment; filename="file.pdf"' ));
Using the wrapper:
$pdf = App::make('snappy.pdf.wrapper');$pdf->loadHTML('<h1>Test</h1>');return $pdf->inline();
Or use the facade:
$pdf = PDF::loadView('pdf.invoice', $data);return $pdf->download('invoice.pdf');
You can chain the methods:
return PDF::loadFile('http://www.github.com')->inline('github.pdf');
You can change the orientation and paper size
PDF::loadHTML($html)->setPaper('a4')->setOrientation('landscape')->setOption('margin-bottom', 0)->save('myfile.pdf')
If you need the output as a string, you can get the rendered PDF with the output() function, so you can save/output it yourself.
See the wkhtmltopdf manual for more information/settings.
Recent Courses on Laravel Daily
AI Agents/IDEs for Laravel: May 2026 (Claude Code, Codex, OpenCode, etc)
7 lessons
52 min
Next.js Basics for Laravel Developers
11 lessons
58 min
Roles and Permissions in Laravel 13
14 lessons
57 min